Untitled
using UnityEngine; using System.Collections.Generic; [RequireComponent(typeof(Rigidbody2D))] [RequireComponent(typeof(Collider2D))] public class Fireball : MonoBehaviour { public float radius = 1f; public float damage = 10f; private Rigidbody2D rb; private HashSet<GameObject> hitEnemies; public SpriteRenderer sr; private void Awake() { // Obtém o Rigidbody2D anexado rb = GetComponent<Rigidbody2D>(); rb.isKinematic = true; // Torna o Rigidbody cinemático para controle manual do movimento // Inicializa a lista de inimigos atingidos hitEnemies = new HashSet<GameObject>(); } private void OnEnable() { // Limpa a lista de inimigos atingidos quando a fireball é reativada hitEnemies.Clear(); } public void SetRadius(float newRadius) { radius = newRadius; sr.transform.localScale = new Vector3(radius * 2, radius * 2, 1); // Ajusta o tamanho do sprite transform.localScale = new Vector3(radius * 2, radius * 2, 1); // Ajusta o tamanho da Fireball } private void OnTriggerEnter2D(Collider2D collision) { if (collision.CompareTag("enemy")) { if (!hitEnemies.Contains(collision.gameObject)) { // Registra o inimigo na lista de atingidos hitEnemies.Add(collision.gameObject); // colocar funções de dano, pushback aqui. var enemy = collision.GetComponent<Transform>(); if (enemy != null) { // } } } } }
Leave a Comment