Ripasso: torretta modulare
Fa parte della sezione Architettura dei giochi in Unity del percorso Unity di Coddy. Lezione 5 di 64.
Sfida
FacileCrea l'arma di Turret1. TurretControl e Cannon sono pronti.
- In
Ammo, scrivipublic bool Take(): usa un proiettile e restituiscitrue, oppure registraname + " is empty"e restituiscifalse. - Rendi
Weaponastratta con[RequireComponent(typeof(Ammo))], eFire()protected abstractsenza corpo. Pull()non fa nulla durante ilcooldown; altrimenti, seTake()restituisce true, riavvia il tempo di recupero e chiamaFire().
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
1Componenti, non gerarchie
Componenti piccoliUno script base per i nemiciComponenti astrattiComponenti che collaboranoRipasso: torretta modulareRipasso: cannone doppio4Dati serializzati
Classi serializzabiliElenchi nell'InspectorEnum nell'InspectorRiepilogo: tabella del bottinoRiepilogo: tira il bottino2Interfacce in Unity
IDamageableInterfacce e TryGetComponentGetComponentsRiepilogo: tasto InteragisciRiepilogo: il più vicino a portata5ScriptableObjects
Asset di datiStatistiche delle armiImpostazioni condiviseSalva il ventoOnde come datiRiepilogo: database degli oggettiRiepilogo: comprare dal negozioEsercitati da solo: Playground Unity