Zusammenfassung: Nächstes in Reichweite
Teil des Abschnitts Spielarchitektur in Unity der Unity-Journey von Coddy. Lektion 11 von 64.
Dieses Kapitel hat Schnittstellen verwendet, damit ein Skript mit Dingen arbeiten kann, die nur eine Methode gemeinsam haben. Die Interaktionstaste wählt jetzt das nächstgelegene davon aus.
Aufgabe
EinfachMit der Leertaste sollte das nächstgelegene Objekt verwendet werden, nicht das erste.
- Füge in
Interactorvor der SchleifeIInteractable nearest = null;undfloat best = Mathf.Infinity;hinzu. - Behalte in der Schleife jedes Objekt, dessen
Vector3.Distancezum Spieler kleiner alsbestist, zusammen mit seiner Entfernung bei. - Rufe nach der Schleife
nearest.Interact()auf, wennnearestnicht null ist.
Drücke auf „Spielen“, stelle dich zwischen die Truhe und den Hebel und drücke die Leertaste: Der Hebel wird gezogen. Drücke dann auf „Prüfen“.
Probier es selbst
using UnityEngine;
using UnityEngine.InputSystem;
// Die Leertaste verwendet das erste Objekt in Reichweite.
public class Interactor : MonoBehaviour
{
public float reach = 1.5f;
void Update()
{
if (Keyboard.current.spaceKey.wasPressedThisFrame)
{
foreach (Collider c in Physics.OverlapSphere(transform.position, reach))
{
if (c.TryGetComponent(out IInteractable thing))
{
thing.Interact();
return;
}
}
}
}
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Spielarchitektur in Unity
1Komponenten statt Hierarchien
Kleine KomponentenEin Basis-GegnerskriptAbstrakte KomponentenZusammenwirkende KomponentenRückblick: Modulares GeschützRückblick: Zwillingskanone4Serialisierte Daten
Serialisierbare KlassenListen im InspectorEnums im InspectorRückblick: Loot-TabelleRückblick: Beute auswürfeln2Schnittstellen in Unity
IDamageableSchnittstellen und TryGetComponentGetComponentsZusammenfassung: InteraktionstasteZusammenfassung: Nächstes in Reichweite5ScriptableObjects
Daten-AssetsWaffenwerteGemeinsame EinstellungenDen Wind speichernWellen als DatenRückblick: Item-DatenbankRückblick: Im Shop einkaufen8Wiederverwendbarer Code
ErweiterungsmethodenEin generisches SingletonGenerische HilfsmethodenRückblick: FindNearestÜbe selbstständig: Unity-Playground