Menu
CoddyTech

Repaso: torreta modular

Parte de la sección Arquitectura de juegos en Unity del Journey de Unity de Coddy. Lección 5 de 64.

challenge icon

Desafío

Fácil

Construye el arma de Turret1. TurretControl y Cannon están listos.

  1. En Ammo, escribe public bool Take(): usa un proyectil y devuelve true, o registra name + " is empty" y devuelve false.
  2. Haz que Weapon sea abstracta con [RequireComponent(typeof(Ammo))], y que Fire() sea protected abstract sin cuerpo.
  3. Pull() no hace nada durante cooldown; de lo contrario, si Take() devuelve true, reinicia el tiempo de espera y llama a Fire().

Pulsa «Jugar» y dispara hasta que se quede sin munición. Después, pulsa «Comprobar».

Pruébalo tú mismo

using UnityEngine;

// Lo que tienen en común todas las armas de torreta.
public class Weapon : MonoBehaviour
{
    public GameObject shellPrefab;
    public float cooldown = 1f;

    public void Pull()
    {
        // espera a que termine el cooldown, toma un proyectil de Ammo y luego dispara
    }

    // Cada arma dispara a su manera.
    protected virtual void Fire()
    {
    }

    // Un proyectil lanzado desde este punto, visto desde la torreta, que vuela en la dirección hacia la que apunta la torreta.
    protected void Launch(Vector3 offset)
    {
        Instantiate(shellPrefab, transform.position + transform.rotation * offset, transform.rotation);
    }
}

Todas las lecciones de Arquitectura de juegos en Unity

Practica por tu cuenta: Playground de Unity