Riepilogo: torretta modulare
Fa parte della sezione Architettura dei giochi in Unity del percorso Unity di Coddy. Lezione 5 di 50.
Sfida
FacileCostruisci 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
shellse un metodo pubblicobool Take(). Se rimane un proiettile, ne usa uno e restituiscetrue. Se non ne rimane nessuno, registra il nome dell'oggetto eis empty, come inTurret2 is empty, e restituiscefalse. - Weapon: un componente astratto che include sempre un Ammo, con un
shellPrefabpubblico (un GameObject), un float pubblicocooldown(l'Inspector imposta 1) e un metodo pubblicoPull(). Una pressione durante il cooldown non fa nulla e non usa proiettili. Altrimenti, seTake()fornisce un proiettile, inizia il cooldown e viene eseguitoFire(), 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), doveoffsetè il punto visto dalla torretta, ad esempionew 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
1Componenti, non gerarchie
Componenti piccoliUno script base per i nemiciComponenti astrattiComponenti che collaboranoRiepilogo: torretta modulare4Dati serializzati
Classi serializzabiliListe nell'InspectorEnum nell'InspectorRiepilogo: tabella del bottino7Macchine a stati
Gli stati come classiUna macchina a statiTransizioniIntelligenze dei nemiciRiepilogo: stati della porta10Progetto: Sopravvissuto nell’arena
L’eroeTipi di nemici5ScriptableObjects
Asset di datiStatistiche delle armiImpostazioni condiviseOndate come datiRiepilogo: database degli oggetti