Menu
CoddyTech

Potenziamenti

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

challenge icon

Sfida

Medio

Potenziamenti. Mantieni tutto dalle lezioni precedenti. Un cuore e uno scudo si trovano nell’arena e i prefab Heart e Shield sono pronti per essere rilasciati dalle ondate. Tutto ciò che l’eroe può raccogliere implementa una sola interfaccia, quindi l’eroe non deve mai conoscere i tipi.

  • IPickup dichiara un metodo, void Collect(Hero hero);.
  • Heart la implementa, usando amount (2) impostato nell’Inspector: cura l’eroe di amount e si distrugge.
  • Shield la implementa, usando duration (5) impostato nell’Inspector: protegge l’eroe da ogni colpo per duration secondi e si distrugge.
  • Hero ottiene public void Heal(int amount), che aumenta la salute senza mai superare maxHealth e registra la salute come quando subisce un colpo; un eroe caduto non viene curato. Ottiene public void Protect(float seconds), che lo protegge dai colpi fino a seconds secondi da adesso, come fa il safeTime quando subisce un colpo. Ottiene anche OnTriggerEnter: quando ciò che tocca ha un IPickup, chiama Collect(this) su di esso. Un CharacterController riceve i messaggi di trigger anche senza un Rigidbody.
  • Ogni Wave ottiene un public GameObject reward. L’Inspector non può mostrare un campo di un tipo interfaccia, quindi il campo contiene il prefab come GameObject. Quando un’ondata viene sconfitta, prima della pausa, lo spawner rilascia la ricompensa dell’ondata, se presente, nella propria posizione al centro dell’arena. L’asset assegna un Heart all’ondata 1 e uno Shield all’ondata 2.

Premi Play, completa un’ondata e raccogli la sua ricompensa, poi premi Check.

Provalo tu

// Una lezione successiva definirà questo: qualsiasi cosa che l'eroe possa raccogliere.
public interface IPickup
{
}

Tutte le lezioni di Architettura dei giochi in Unity