Cosmic Strike
 
Cargando...
Buscando...
Nada coincide
Referencia de la clase SpiralShot

Dispara una ráfaga de proyectiles en forma de espiral. Cada disparo se realiza con una rotación incremental, produciendo una secuencia que gira 360° a lo largo de un intervalo de tiempo. La ráfaga se gestiona mediante una corrutina. Más...

+ Diagrama de herencia de SpiralShot
+ Diagrama de colaboración de SpiralShot:

Métodos públicos

override void Shoot ()
 Método principal que se llama para iniciar el disparo. Lanza la corrutina que gestiona la ráfaga espiral.
 
- Métodos públicos heredados de ShootingBehaviour
void Shoot ()
 Método abstracto que debe implementar cualquier proyectil derivado. Se llama justo después de instanciar el proyectil para darle velocidad o comportamiento inicial.
 

Atributos públicos

GameObject bulletPrefab
 Prefab del proyectil a instanciar. Debe contener Rigidbody2D y sistema de daño.
 
Transform firePoint
 Punto desde el que se lanzan los disparos. Su rotación se modifica durante la ráfaga.
 
int bulletCount = 12
 Cantidad total de proyectiles que se dispararán en la ráfaga.
 
float burstDuration = 0.6f
 Duración total de la ráfaga (en segundos).
 
float bulletSpeed = 8f
 Velocidad a la que se desplazan los proyectiles.
 

Métodos privados

void Awake ()
 Si no se asignó manualmente el firePoint, se intenta encontrar uno bajo el objeto padre llamado "FirePointCenter".
 
IEnumerator SpawnSpiralBurst ()
 Corrutina que instancia los proyectiles de forma secuencial mientras incrementa la rotación del firePoint. Genera una ráfaga con efecto espiral durante burstDuration segundos.
 

Descripción detallada

Dispara una ráfaga de proyectiles en forma de espiral. Cada disparo se realiza con una rotación incremental, produciendo una secuencia que gira 360° a lo largo de un intervalo de tiempo. La ráfaga se gestiona mediante una corrutina.

Definición en la línea 19 del archivo SpiralShot.cs.

Documentación de funciones miembro

◆ Awake()

void SpiralShot.Awake ( )
inlineprivate

Si no se asignó manualmente el firePoint, se intenta encontrar uno bajo el objeto padre llamado "FirePointCenter".

Definición en la línea 55 del archivo SpiralShot.cs.

56 {
57 // Si no lo asignaste manualmente, buscamos bajo el Player
58 if (firePoint == null && transform.parent != null)
59 {
60 firePoint = transform.parent.Find("FirePointCenter");
61 if (firePoint == null)
62 Debug.LogError("SpiralShot: no encontró 'FirePointCenter' en Player.");
63 }
64 }
Transform firePoint
Punto desde el que se lanzan los disparos. Su rotación se modifica durante la ráfaga.
Definition SpiralShot.cs:32

Hace referencia a firePoint.

◆ Shoot()

override void SpiralShot.Shoot ( )
inline

Método principal que se llama para iniciar el disparo. Lanza la corrutina que gestiona la ráfaga espiral.

Definición en la línea 69 del archivo SpiralShot.cs.

70 {
71 // Arranca la ráfaga en coroutine
72 StartCoroutine(SpawnSpiralBurst());
73 }
IEnumerator SpawnSpiralBurst()
Corrutina que instancia los proyectiles de forma secuencial mientras incrementa la rotación del fireP...
Definition SpiralShot.cs:79

Hace referencia a SpawnSpiralBurst().

+ Gráfico de llamadas de esta función:

◆ SpawnSpiralBurst()

IEnumerator SpiralShot.SpawnSpiralBurst ( )
inlineprivate

Corrutina que instancia los proyectiles de forma secuencial mientras incrementa la rotación del firePoint. Genera una ráfaga con efecto espiral durante burstDuration segundos.

Definición en la línea 79 del archivo SpiralShot.cs.

80 {
81 if (bulletPrefab == null || firePoint == null || bulletCount < 1 || burstDuration <= 0f)
82 {
83 Debug.LogWarning("SpiralShot: configura bulletPrefab, firePoint, bulletCount ≥1 y burstDuration >0.");
84 yield break;
85 }
86
87 float interval = burstDuration / bulletCount;
88 float angleStep = 360f / bulletCount;
89 Quaternion originalRot = firePoint.rotation;
90
91 for (int i = 0; i < bulletCount; i++)
92 {
93 // Calcula rotación incremental
94 firePoint.rotation = originalRot * Quaternion.Euler(0f, 0f, i * angleStep);
95
96 // Instancia el proyectil
97 GameObject b = Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
98 if (b.TryGetComponent<Rigidbody2D>(out var rb))
99 rb.linearVelocity = firePoint.up * bulletSpeed;
100
101 // Espera antes del siguiente disparo
102 yield return new WaitForSeconds(interval);
103 }
104
105 // Restaura rotación original para futuros disparos
106 firePoint.rotation = originalRot;
107 }
GameObject bulletPrefab
Prefab del proyectil a instanciar. Debe contener Rigidbody2D y sistema de daño.
Definition SpiralShot.cs:26
float bulletSpeed
Velocidad a la que se desplazan los proyectiles.
Definition SpiralShot.cs:50
int bulletCount
Cantidad total de proyectiles que se dispararán en la ráfaga.
Definition SpiralShot.cs:38
float burstDuration
Duración total de la ráfaga (en segundos).
Definition SpiralShot.cs:44

Hace referencia a bulletCount, bulletPrefab, bulletSpeed, burstDuration y firePoint.

Referenciado por Shoot().

+ Gráfico de llamadas a esta función:

Documentación de datos miembro

◆ bulletCount

int SpiralShot.bulletCount = 12

Cantidad total de proyectiles que se dispararán en la ráfaga.

Definición en la línea 38 del archivo SpiralShot.cs.

Referenciado por SpawnSpiralBurst().

◆ bulletPrefab

GameObject SpiralShot.bulletPrefab

Prefab del proyectil a instanciar. Debe contener Rigidbody2D y sistema de daño.

Definición en la línea 26 del archivo SpiralShot.cs.

Referenciado por SpawnSpiralBurst().

◆ bulletSpeed

float SpiralShot.bulletSpeed = 8f

Velocidad a la que se desplazan los proyectiles.

Definición en la línea 50 del archivo SpiralShot.cs.

Referenciado por SpawnSpiralBurst().

◆ burstDuration

float SpiralShot.burstDuration = 0.6f

Duración total de la ráfaga (en segundos).

Definición en la línea 44 del archivo SpiralShot.cs.

Referenciado por SpawnSpiralBurst().

◆ firePoint

Transform SpiralShot.firePoint

Punto desde el que se lanzan los disparos. Su rotación se modifica durante la ráfaga.

Definición en la línea 32 del archivo SpiralShot.cs.

Referenciado por Awake() y SpawnSpiralBurst().


La documentación de esta clase está generada del siguiente archivo: