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

Implementación de disparo radial que instancia bulletCount proyectiles equiespaciados en un círculo completo, aplicando una velocidad uniforme a cada uno. Utiliza firePoint como origen de todos los disparos. Más...

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

Métodos públicos

override void Shoot ()
 Ejecuta el disparo radial. Instancia bulletCount proyectiles y les asigna una velocidad en direcciones equiespaciadas a lo largo de 360°.
 
- 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 que se dispara radialmente. Debe tener un Rigidbody2D para aplicar velocidad.
 
Transform firePoint
 Transform desde donde se dispararán todos los proyectiles. Si no se asigna manualmente, se buscará "FirePointCenter" dentro del Player.
 
float bulletSpeed = 8f
 Velocidad a la que se desplaza cada proyectil en la dirección asignada.
 
int bulletCount = 12
 Número total de proyectiles generados en la circunferencia.
 

Métodos privados

void Awake ()
 Si no se ha asignado un firePoint manualmente, se busca automáticamente el hijo "FirePointCenter" dentro del objeto "Player".
 

Descripción detallada

Implementación de disparo radial que instancia bulletCount proyectiles equiespaciados en un círculo completo, aplicando una velocidad uniforme a cada uno. Utiliza firePoint como origen de todos los disparos.

Definición en la línea 18 del archivo RadialShot.cs.

Documentación de funciones miembro

◆ Awake()

void RadialShot.Awake ( )
inlineprivate

Si no se ha asignado un firePoint manualmente, se busca automáticamente el hijo "FirePointCenter" dentro del objeto "Player".

Definición en la línea 51 del archivo RadialShot.cs.

52 {
53 if (firePoint == null)
54 {
55 var playerGO = GameObject.Find("Player");
56 if (playerGO != null)
57 {
58 var fp = playerGO.transform.Find("FirePointCenter");
59 if (fp != null)
60 {
61 firePoint = fp;
62 }
63 else
64 {
65 Debug.LogError("RadialShot: no se encontró 'FirePointCenter' bajo 'Player'.");
66 }
67 }
68 else
69 {
70 Debug.LogError("RadialShot: no se encontró ningún GameObject llamado 'Player'.");
71 }
72 }
73 }
Transform firePoint
Transform desde donde se dispararán todos los proyectiles. Si no se asigna manualmente,...
Definition RadialShot.cs:33

Hace referencia a firePoint.

◆ Shoot()

override void RadialShot.Shoot ( )
inline

Ejecuta el disparo radial. Instancia bulletCount proyectiles y les asigna una velocidad en direcciones equiespaciadas a lo largo de 360°.

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

80 {
81 if (bulletPrefab == null || firePoint == null || bulletCount < 1)
82 {
83 Debug.LogWarning("RadialShot: configura bulletPrefab, firePoint y bulletCount ≥ 1.");
84 return;
85 }
86
87 float angleStep = 360f / bulletCount;
88 float angle = 0f;
89
90 for (int i = 0; i < bulletCount; i++)
91 {
92 // Calcula la rotación y dirección
93 Quaternion rot = Quaternion.Euler(0f, 0f, angle);
94 Vector2 dir = rot * Vector2.up;
95
96 // Instancia el proyectil
97 GameObject b = Instantiate(bulletPrefab, firePoint.position, rot);
98 if (b.TryGetComponent<Rigidbody2D>(out var rb))
99 {
100 rb.linearVelocity = dir * bulletSpeed;
101 }
102 else
103 {
104 Debug.LogWarning("RadialShot: el prefab no tiene Rigidbody2D.");
105 }
106
107 angle += angleStep;
108 }
109 }
float bulletSpeed
Velocidad a la que se desplaza cada proyectil en la dirección asignada.
Definition RadialShot.cs:39
int bulletCount
Número total de proyectiles generados en la circunferencia.
Definition RadialShot.cs:45
GameObject bulletPrefab
Prefab del proyectil que se dispara radialmente. Debe tener un Rigidbody2D para aplicar velocidad.
Definition RadialShot.cs:26

Hace referencia a bulletCount, bulletPrefab, bulletSpeed y firePoint.

Documentación de datos miembro

◆ bulletCount

int RadialShot.bulletCount = 12

Número total de proyectiles generados en la circunferencia.

Definición en la línea 45 del archivo RadialShot.cs.

Referenciado por Shoot().

◆ bulletPrefab

GameObject RadialShot.bulletPrefab

Prefab del proyectil que se dispara radialmente. Debe tener un Rigidbody2D para aplicar velocidad.

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

Referenciado por Shoot().

◆ bulletSpeed

float RadialShot.bulletSpeed = 8f

Velocidad a la que se desplaza cada proyectil en la dirección asignada.

Definición en la línea 39 del archivo RadialShot.cs.

Referenciado por Shoot().

◆ firePoint

Transform RadialShot.firePoint

Transform desde donde se dispararán todos los proyectiles. Si no se asigna manualmente, se buscará "FirePointCenter" dentro del Player.

Definición en la línea 33 del archivo RadialShot.cs.

Referenciado por Awake() y Shoot().


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