Rückblick: FindNearest
Teil des Abschnitts Spielarchitektur in Unity der Unity-Journey von Coddy. Lektion 36 von 50.
Aufgabe
MittelEin Reinigungsroboter sammelt Edelsteine und fährt dann zum Aufladen. Gem und ChargePad sind leere Markierungsskripte (bereit), und der Roboter hat MoveTo(point), das ihn schrittweise auf einen Punkt zubewegt und true zurückgibt, sobald er dort ist.
- Schreibe in
Helpers.cseine statische KlasseHelpersmit einer generischen MethodeFindNearest<T>(IEnumerable<T> items, Vector3 from)für einen beliebigen Komponententyp. Sie gibt das Element zurück, dessen Position am nächsten beifromliegt, oder null, wenn es keine Elemente gibt. - In
Robot.cssteuert der Roboter in jedem Frame den nächstgelegenen Edelstein in der Szene an, ausgehend von seiner aktuellen Position, und zerstört den Edelstein, sobald er dort ankommt. - Wenn keine Edelsteine mehr übrig sind, steuert der Roboter das nächstgelegene
ChargePadan. Bei seiner Ankunft gibt er einmalChargingaus und bleibt dort.
Verwende FindNearest sowohl für die Edelsteine als auch für die Ladepads. Drücke Play, beobachte den Roboter und klicke dann auf Check.
Probier es selbst
using System.Collections.Generic;
using UnityEngine;
// Helpers.FindNearest<T>: das Element, das einem Punkt am nächsten liegt, oder null
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