Power-ups
Teil des Abschnitts Spielarchitektur in Unity der Unity-Journey von Coddy. Lektion 45 von 50.
Aufgabe
MittelPower-ups. Behalte alles aus den vorherigen Lektionen bei. Ein Herz und ein Schild liegen in der Arena, und die Prefabs Heart und Shield sind bereit, von den Wellen fallen gelassen zu werden. Alles, was der Held aufheben kann, implementiert eine Schnittstelle, sodass der Held die verschiedenen Arten nie kennen muss.
IPickupdeklariert eine Methode,void Collect(Hero hero);.Heartimplementiert sie mitamount(2) aus dem Inspector: Es heilt den Helden umamountund zerstört sich selbst.Shieldimplementiert sie mitduration(5) aus dem Inspector: Es schützt den HeldendurationSekunden lang vor jedem Treffer und zerstört sich selbst.Heroerhältpublic void Heal(int amount), das die Gesundheit erhöht, aber nie übermaxHealthhinaus, und die Gesundheit wie bei einem Treffer protokolliert; ein gefallener Held wird nicht geheilt. Außerdem erhält erpublic void Protect(float seconds), das ihn bissecondsSekunden ab jetzt vor Treffern schützt, so wie es diesafeTimeeines Treffers tut. Dazu kommtOnTriggerEnter: Wenn das Objekt, das er berührt hat, einIPickupbesitzt, ruft er daraufCollect(this)auf. Ein CharacterController erhält Trigger-Nachrichten auch ohne Rigidbody.- Jede
Waveerhält einpublic GameObject reward. Der Inspector kann kein Feld eines Schnittstellentyps anzeigen, daher enthält das Feld das Prefab als GameObject. Wenn eine Welle besiegt ist, lässt der Spawner vor der Pause die Belohnung der Welle, sofern vorhanden, an seiner eigenen Position in der Mitte der Arena fallen. Das Asset weist Welle 1 ein Heart und Welle 2 ein Shield zu.
Drücke Play, schließe eine Welle ab und sammle ihre Belohnung ein. Klicke dann auf Check.
Probier es selbst
// In einer späteren Lektion wird dies ergänzt: alles, was der Held aufheben kann.
public interface IPickup
{
}
Alle Lektionen in Spielarchitektur in Unity
1Komponenten statt Hierarchien
Kleine KomponentenEin Basisskript für GegnerAbstrakte KomponentenKomponenten im ZusammenspielRückblick: Modularer Geschützturm4Serialisierte Daten
Serialisierbare KlassenListen im InspectorEnums im InspectorRückblick: Loot-Tabelle7Zustandsautomaten
Zustände als KlassenEin ZustandsautomatÜbergängeGegner-KIWiederholung: Türzustände10Projekt: Arena-Überlebenskampf
Der HeldGegnertypen2Interfaces in Unity
IDamageableInterfaces und TryGetComponentGetComponentsRückblick: Interaktionstaste5ScriptableObjects
Daten-AssetsWaffenwerteGemeinsame EinstellungenWellen als DatenRückblick: Item-Datenbank8Wiederverwendbarer Code
ErweiterungsmethodenEin generisches SingletonGenerische HilfsmethodenRückblick: FindNearest