Menu
CoddyTech

Ripasso: torretta modulare

Fa parte della sezione Architettura dei giochi in Unity del percorso Unity di Coddy. Lezione 5 di 64.

challenge icon

Sfida

Facile

Crea l'arma di Turret1. TurretControl e Cannon sono pronti.

  1. In Ammo, scrivi public bool Take(): usa un proiettile e restituisci true, oppure registra name + " is empty" e restituisci false.
  2. Rendi Weapon astratta con [RequireComponent(typeof(Ammo))], e Fire() protected abstract senza corpo.
  3. Pull() non fa nulla durante il cooldown; altrimenti, se Take() restituisce true, riavvia il tempo di recupero e chiama Fire().

Premi «Gioca» e spara finché non è vuoto. Poi premi «Verifica».

Provalo tu

using UnityEngine;

// Ciò che accomuna tutte le armi della torretta.
public class Weapon : MonoBehaviour
{
    public GameObject shellPrefab;
    public float cooldown = 1f;

    public void Pull()
    {
        // attendi che termini il cooldown, prendi un proiettile da Ammo, poi spara
    }

    // Ogni arma spara a modo suo.
    protected virtual void Fire()
    {
    }

    // Un proiettile lanciato da questo punto, rispetto alla torretta, nella direzione in cui è rivolta.
    protected void Launch(Vector3 offset)
    {
        Instantiate(shellPrefab, transform.position + transform.rotation * offset, transform.rotation);
    }
}

Tutte le lezioni di Architettura dei giochi in Unity

Esercitati da solo: Playground Unity