23 [Header(
"AlternatingShot")]
35 [Tooltip(
"Arrastra manualmente Left, Right si quieres, sino se cogerán del Player")]
57 Transform playerRoot = transform.root;
58 Transform left = playerRoot.Find(
"FirePointLeft");
59 Transform right = playerRoot.Find(
"FirePointRight");
61 if (left !=
null && right !=
null)
65 $
"[{name}] AlternatingShot Awake: no ha encontrado FirePointLeft/Right bajo {playerRoot.name}"
81 GameObject b = Instantiate(
bulletPrefab, fp.position, fp.rotation);
82 if (b.TryGetComponent<Rigidbody2D>(out var rb))
Comportamiento de disparo que alterna entre dos puntos de disparo (por ejemplo, izquierdo y derecho)....
Transform[] firePoints
Transformaciones que indican desde dónde se disparan los proyectiles. Si no se arrastran manualmente,...
override void Shoot()
Dispara un proyectil desde el siguiente firePoint, alternando entre los disponibles....
void Awake()
Busca automáticamente los firePoints si no se han asignado manualmente. Se asume que el arma está ani...
int nextIndex
Índice del próximo firePoint desde el que se disparará. Se alterna entre 0 y 1 en cada disparo.
GameObject bulletPrefab
Prefab del proyectil que se instanciará al disparar. Debe tener un Rigidbody2D para que se le aplique...
float bulletSpeed
Velocidad con la que se desplaza el proyectil al ser disparado (en unidades por segundo).
Clase base abstracta que define la interfaz de comportamiento para proyectiles. Cada clase hija debe ...