Menu
CoddyTech

Riepilogo: torretta modulare

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

challenge icon

Sfida

Facile

Costruisci le due torrette del poligono di prova usando i componenti. TurretControl.cs fa già ruotare ogni torretta con le frecce sinistra e destra, e Shell.cs fa volare un proiettile in avanti. La scena assegna a Turret1 un Cannon e un Ammo con 4 proiettili, e a Turret2 un TwinCannon e un Ammo con 3 proiettili. Scrivi i componenti:

  • Ammo: un int pubblico shells e un metodo pubblico bool Take(). Se rimane un proiettile, ne usa uno e restituisce true. Se non ne rimane nessuno, registra il nome dell'oggetto e is empty, come in Turret2 is empty, e restituisce false.
  • Weapon: un componente astratto che include sempre un Ammo, con un shellPrefab pubblico (un GameObject), un float pubblico cooldown (l'Inspector imposta 1) e un metodo pubblico Pull(). Una pressione durante il cooldown non fa nulla e non usa proiettili. Altrimenti, se Take() fornisce un proiettile, inizia il cooldown e viene eseguito Fire(), un metodo astratto che ogni arma implementa.
  • Cannon spara un proiettile da 1 unità davanti alla torretta. TwinCannon spara due proiettili usando un solo proiettile di munizioni, da 0.4 a sinistra e 0.4 a destra di quel punto. Un proiettile parte da transform.position + transform.rotation * offset, orientato come la torretta (transform.rotation), dove offset è il punto visto dalla torretta, ad esempio new Vector3(0f, 0f, 1f).
  • In TurretControl, la barra spaziatrice preme il grilletto dell'arma che la torretta ha.

Premi Play, ruota e spara finché entrambe le torrette non sono vuote, poi premi Check.

Provalo tu

using UnityEngine;

// Ciò che ogni arma della torretta ha in comune.
public class Weapon : MonoBehaviour
{
}

Tutte le lezioni di Architettura dei giochi in Unity