Cosmic Strike
 
Cargando...
Buscando...
Nada coincide
EnemyShooting.cs
Ir a la documentación de este archivo.
1
6
7using UnityEngine;
8
18public class EnemyShooting : MonoBehaviour
19{
23 [Header("Configuración de Disparo Enemigo")]
24 [Tooltip("El enemigo podrá disparar si está activo")]
25 public bool canShoot = false;
26
30 [Tooltip("Prefab del proyectil que instanciará")]
31 public GameObject bulletPrefab;
32
36 [Tooltip("Puntos de disparo (transform hijos posicionados en cada cañón)")]
37 public Transform[] firePoints;
38
42 [Tooltip("Cadencia de disparo en segundos")]
43 public float fireRate = 1f;
44
48 private float nextFireTime = 0f;
49
54 private void Update()
55 {
56 if (canShoot && Time.time >= nextFireTime && firePoints.Length > 0 && bulletPrefab != null)
57 {
58 Shoot();
59 nextFireTime = Time.time + fireRate;
60 }
61 }
62
68 private void Shoot()
69 {
70 foreach (Transform fp in firePoints)
71 {
72 GameObject bullet = Instantiate(
74 fp.position,
75 fp.rotation
76 );
77
78 Rigidbody2D rb = bullet.GetComponent<Rigidbody2D>();
79 if (rb != null)
80 {
81 rb.linearVelocity = fp.up * rb.linearVelocity.magnitude;
82 }
83 }
84 }
85}
Controla el sistema de disparo de un enemigo. Permite que dispare proyectiles desde uno o varios punt...
void Shoot()
Instancia un proyectil en cada firePoint, respetando su rotación. Si el proyectil tiene un componente...
bool canShoot
Indica si el enemigo puede disparar. Debe estar activado para que el disparo ocurra.
float nextFireTime
Próximo instante de tiempo en el que el enemigo podrá volver a disparar.
float fireRate
Tiempo entre disparos consecutivos, en segundos.
GameObject bulletPrefab
Prefab del proyectil que se instanciará al disparar.
Transform[] firePoints
Transformaciones hijas que actúan como puntos de disparo (cañones).
void Update()
Método llamado una vez por frame. Comprueba si se puede disparar y llama a Shoot si se cumplen las co...