Zeichensteuerer

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Die ControllerManager Instanz verwaltet die simulierte Bewegungssteuerung für ihre zugewiesene RootPart .Zusammen mit ControllerPartSensors kann es verwendet werden, um einen physikbasierten Controllerzu erstellen.

Kern-Einrichtung

ControllerManager erfordert ein BasePart als seine Wurzel zu verwenden. Bewegungskräfte und Teileerkennung werden auf diesem Teil sein.

  1. Wählen Sie ein Part oder MeshPart und benennen Sie es RootPart .

  2. Gruppiere das Teil als Model.

  3. Füge eine ControllerManager Instanz zum Modell hinzu.Wenn ControllerManager zunächst nicht im Objekt-Eingabemenü erscheint, deaktivieren Sie "Nur empfohlene Objekte anzeigen" in den Eingabeeinstellungen des Menüs.

    ControllerManager and RootPart inside a model.

Sensoraufbau

Ein ControllerPartSensor erkennt Teile mit demselben Code, den die Humanoid zum Erkennen von Böden und Leitern verwendet.

  1. Füge ein ControllerPartSensor als Kind von RootPart ein und benenne es umbenennen GroundSensor für eine einfachere Identifizierung seines Zwecks.Dann, im Eigenschaften-Fenster, setze seine SearchDistance auf 2 , aber lass seine SensorMode als Boden übrig.

    GroundSensor as child of RootPart
  2. Füge einen weiteren ControllerPartSensor als Kind von RootPart ein und benenne ihn KletterSensor um.Dann, im Eigenschaften-Fenster, setze seine SearchDistance auf 1 und seine SensorMode auf Ladder .

    ClimbSensor as child of RootPart

Controller-Einrichtung

Controller-Instanzen wie GroundController und ClimbController sagen dem verwalteten Teil, wie es mit der Welt interagieren soll, und arbeiten neben den Sensoren, die du während der Sensor-Einrichtung konfiguriert hast.

  1. Füge sowohl ein GroundController als auch ClimbController als Kinder des ControllerManager ein.

    GroundController and ClimbController as children of ControllerManager.
  2. Wählen Sie die neue GroundController und dann, im Eigenschaften-Fenster, setzen Sie ihre GroundOffset auf einen Wert, bei dem das verwaltete Teil "auf der Erde schweben" sollte.Es ist wichtig, dass dieser Wert weniger als der Wert von ist, da dieser Sensor deaktiviert wird, wenn er den Sinn des Bodens verliert und seine Kräfte effektiv auf der Seite stoppt.

Verknüpfungsreferenzen

Um die Kernkonfiguration abzuschließen, musst du verschiedene Eigenschaften der ControllerManager Instanz mit Objekten innerhalb der HauptModel verknüpfen.

  1. Wählen Sie die ControllerManager.

    ControllerManager selected in Explorer window.
  2. Klicke im Eigenschaften-Fenster auf jede der folgenden Eigenschaften und dann, zurück im Explorer-Fenster, auf die entsprechende Instanz, um den verlinkenzu vervollständigen.

    1. Verknüpfe die ActiveController mit der GroundController Instanz.
    2. Verknüpfe die RootPart Eigenschaft mit dem Teil, das du benannt hast RootPart .
    3. Verknüpfe die ClimbSensor Eigenschaft mit der KletterSensor Instanz.
    4. Verknüpfe die GroundSensor mit der GroundSensor Instanz.
    ControllerManager properties linked to instances within overall model

Testen

Mit Sensoren und Kontrollern im Ortund mit verknüpften Referenzen kannst du den Controller in Studio testen.

  1. Starte einen Spieltest mit dem Lauf -Modus (F8), da du deinen Avatar-Charakter in diesem Szenario nicht einfügen musst.

    Rapid playtest options in Studio.
  2. RootPart sollte über dem Boden schweben bei dem GroundController.GroundOffset Wert, den du in Kontroller hinzufügen festgelegt hast.Es sollte sich auch drehen, um sich mit dem ControllerManager.FacingDirection Vektorkraftzu vereinbaren.

    Character levitating above ground at GroundOffset, facing in direction of FacingDirection vector.
  3. Experimentiere mit verschiedenen Bewegungsrichtungen und Gesichtspunkten, indem du die MovingDirection - und FacingDirection -Vektoren des ControllerManager während der Laufzeit änderst.Experimentiere auch mit verschiedenen Eigenschaften der GroundController Instanz wie AccelerationTime , DecelerationTime und GroundOffset .

    ControllerManager properties for moving and facing direction are highlighted.
    ControllerManager
    GroundController properties for acceleration, deceleration, and ground offset are highlighted.
    Bodensteuerung

Eigene Sensoren

Die ControllerPartSensor.SensorMode -Optionen von Floor und Ladder führen den genauen Humanoid Codesaus, sodass Sie sie für die Rückkompatibilität verwenden können.Sie können jedoch auch anpassen, wie und wann begehbare und kletterbare Teile erkannt werden, sich letztendlich ändern, wenn das verwaltete Teil geht/klettert.

  1. Schalte die ControllerPartSensor.UpdateType von OnRead auf Manuell um.

    • Lesen aktiviert die Ausgabe-Eigenschaften, um entsprechend Ihrer SensorMode jedes Mal zu aktualisieren, wenn Sie sie lesen.Es stellt den Sensor im Wesentlichen in einen "Nur-Lesemodus" um, in dem alles, was Sie auf diese Eigenschaften schreiben, durch sein internes Sensorverhalten überschrieben wird.
    • Manuell schaltet das interne Sensorverhalten aus.Die Ausgabe-Eigenschaften sind für Sie kostenlos, um zu schreiben, wie Sie möchten, und die SensorMode tut nichts.
  2. Erstellen Sie ein Skript, das Ihre eigene Sensorlogik ausführt und die Ausgänge in die Sensorausgabeproperties schreibt.In der Regel verwendest du eine räumliche Abfrage wie WorldRoot:Raycast() oder WorldRoot:Blockcast(), die eine RaycastResult zurückgibt.Dein Skript kann dann die Ergebnis-Eigenschaften annehmen und sie auf den Sensor-Äquivalenten festlegen:

    Beachten Sie, dass Sie sicherstellen müssen, wie oft Ihre Abfragen ausgeführt werden und ihre Instanzaktualisieren.

  3. Die ControllerManager wird weiterhin die Sensoren verwenden, die ihr zugewiesen wurden, und die Daten, die du ihr übermittelst.