using UnityEngine; // Controla el comportamiento de cada bala disparada por el jugador: // se mueve hacia arriba y se destruye sola después de un tiempo. public class Bullet : MonoBehaviour { [Header("Movimiento")] public float moveSpeed = 12f; [Header("Duración")] // Cuántos segundos vive la bala antes de autodestruirse. // Esto evita que queden balas acumulándose fuera de la pantalla para siempre, // lo que iría gastando memoria de a poco. public float tiempoDeVida = 2f; void Start() { // Destroy(gameObject, segundos) programa la destrucción de este GameObject // luego de que pase esa cantidad de segundos. Destroy(gameObject, tiempoDeVida); } void Update() { // transform.Translate mueve el objeto en la dirección indicada. // Vector3.up equivale a (0, 1, 0): hacia arriba de la pantalla. transform.Translate(Vector3.up * moveSpeed * Time.deltaTime); } void OnTriggerEnter2D(Collider2D other) { if (other.CompareTag("Enemy")) { // Le preguntamos al enemigo cuántos puntos vale (componente EnemyPoints) // y se los sumamos al puntaje a través del GameManager. EnemyPoints puntosDelEnemigo = other.GetComponent(); if (puntosDelEnemigo != null) { GameManager.instancia.SumarPuntos(puntosDelEnemigo.valorDePuntos); } Destroy(other.gameObject); Destroy(gameObject); } } }