Danneggiare tutto
Fa parte della sezione Architettura dei giochi in Unity del percorso Unity di Coddy. Lezione 43 di 50.
Sfida
MedioOra lo scontro va in entrambe le direzioni. Mantieni tutto ciò che hai realizzato nelle lezioni precedenti. I nemici non hanno più tag: il colpo individua ciò che può danneggiare tramite un'interfaccia, e i nemici danneggiano l'eroe tramite la stessa interfaccia.
IDamageabledichiara un metodo,void TakeDamage(int amount);.Enemyla implementa. Hahealth,damageeattackEvery, impostati nell'Inspector (un grunt ha i valori 2, 1 e 1; il dasher 1, 2 e 1).TakeDamagesottraeamountdahealthe distrugge il nemico quando raggiunge 0 o meno. InStart, conserva ancheIDamageabledell'eroe. A ogni frame, quando l'eroe si trova entro 1.2 unità, chiamaTakeDamage(damage)su di esso, al massimo una volta ogniattackEverysecondi.Herola implementa, conswingDamage(1),maxHealth(5) esafeTime(1) impostati nell'Inspector, e unhealthche parte damaxHealthinAwake. Un colpo sottraeamount, registra la salute comeHero HP: 4e protegge l'eroe da altri colpi persafeTimesecondi. Quando la salute arriva a 0, registraThe hero fallse disattiva lo script Hero (enabled = false). Un eroe caduto ignora i colpi.- Il colpo non controlla più i tag e non distrugge nulla: chiama
TakeDamage(swingDamage)su tutto ciò che è a portata e davanti a sé e che ha unIDamageable.
Premi Play e combatti, poi Check.
Provalo tu
// Una lezione successiva completerà questo punto: qualsiasi cosa che possa subire danni.
public interface IDamageable
{
}
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