Rückblick: Interaktionstaste
Teil des Abschnitts Spielarchitektur in Unity der Unity-Journey von Coddy. Lektion 9 von 50.
Aufgabe
EinfachGib dem Spieler eine Interaktionstaste. Mit den Pfeiltasten bewegt sich der Spieler (Mover.cs, fertig), und mit der Leertaste wird das nächstgelegene verwendbare Objekt in Reichweite benutzt. Schreibe die folgenden Teile:
- IInteractable: ein Interface mit einer Methode,
void Interact(). - Door: Bei jeder Benutzung schwingt die Tür auf oder zu. Beim Öffnen wird sie um 90 Grad um die y-Achse gedreht und
Door openedprotokolliert; beim Schließen wird sie zurückgedreht undDoor closedprotokolliert. - Chest: Bei der ersten Benutzung wird
Found 5 coinsprotokolliert (der Inspector legt den Wert voncoinsfest) und die Truhe geleert. Bei jeder späteren Benutzung wirdThe chest is emptyprotokolliert. - Lever: Bei jeder Benutzung wird
bridge(einGameObject, das der Inspector festlegt und das zu Beginn verborgen ist) ein- oder ausgeschaltet undLever pulledprotokolliert. - Interactor auf dem Spieler: Wenn die Leertaste gedrückt wird (lies dies mit
Keyboard.currentaus dem Input System aus), finde mitPhysics.OverlapSpheredie Collider innerhalb vonreach(1.5) und rufeInteract()für den Collider auf, der ein IInteractable hat und dessen Position dem Spieler am nächsten ist. Ist nichts in Reichweite, passiert nichts.
Drücke Play, laufe herum und benutze alles, dann Check.
Probier es selbst
using UnityEngine;
using UnityEngine.InputSystem;
// Space verwendet das nächstgelegene Objekt in Reichweite.
public class Interactor : MonoBehaviour
{
public float reach = 1.5f;
}
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