Menu
CoddyTech

Rückblick: Interaktionstaste

Teil des Abschnitts Spielarchitektur in Unity der Unity-Journey von Coddy. Lektion 9 von 50.

challenge icon

Aufgabe

Einfach

Gib 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 opened protokolliert; beim Schließen wird sie zurückgedreht und Door closed protokolliert.
  • Chest: Bei der ersten Benutzung wird Found 5 coins protokolliert (der Inspector legt den Wert von coins fest) und die Truhe geleert. Bei jeder späteren Benutzung wird The chest is empty protokolliert.
  • Lever: Bei jeder Benutzung wird bridge (ein GameObject, das der Inspector festlegt und das zu Beginn verborgen ist) ein- oder ausgeschaltet und Lever pulled protokolliert.
  • Interactor auf dem Spieler: Wenn die Leertaste gedrückt wird (lies dies mit Keyboard.current aus dem Input System aus), finde mit Physics.OverlapSphere die Collider innerhalb von reach (1.5) und rufe Interact() 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