Untitled
unknown
plain_text
a year ago
1.7 kB
7
Indexable
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)
{
//
}
}
}
}
}
Editor is loading...
Leave a Comment