Charakter-Controller

*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 ihren zugewiesenen RootPart . Zusammen mit ControllerPartSensors kann sie verwendet werden, um einen physikalisch basierten Charakter-Controller zu erstellen.

Kern-Einstellungen

ControllerManager benötigt einen BasePart als Wurzel. Bewegungskräfte und Teil-S感應 werden auf dieser Teil sein.

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

  2. Gruppiere das Teil als Model Instanz für die Organisation zusammen mit den anderen Komponenten.

  3. Fügen Sie eine Class.ControllerManager -Instanz dem Modell hinzu. Wenn Class.ControllerManager nicht im Objekt-Einserungsmenü erscheint, deaktivieren Sie uncheck "Nur empfohlene Objekte anzeigen" in den Einstellungen des Menüs Zurücklegen .

    ControllerManager and RootPart inside model

Sensor-Einstellungen

Ein ControllerPartSensor erkennt Teile mit dem selben Code, den Humanoid für die Erkennung von Böden und Treppen verwendet.

  1. Fügen Sie ein ControllerPartSensor als Kind von RootPart und benennen Sie es GroundSensor für eine einfachere Identifizierung seines Zwecks. Dann, im 1> Eigenschaften-Fenster1>, setzen Sie seine

    GroundSensor as child of RootPart
    GroundSensor properties
  2. Fügen Sie einen weiteren ControllerPartSensor als Kind von RootPart und benennen Sie ihn ClimbSensor . Dann, in dem 1> Eigenschaften-Fenster1>, setzen Sie seine 4> Class.ControllerPartSensor.SearchDistance|SearchDistance

    ClimbSensor as child of RootPart
    ClimbSensor properties

Controller-Einstellungen

Controller-Instanzen wie GroundController und ClimbController sagen dem verwalteten Teil, wie man mit der Welt interagiert, indem sie die Sensoren einschließlich der Sensoren konfiguriert, die Sie in Sensor-Einstellungen konfiguriert haben.

  1. Füge beide ein GroundController und ClimbController als Kinder des ControllerManager ein.

    GroundController and ClimbController as children of ControllerManager
  2. Wählen Sie die neue GroundController Instanz und dann, im Eigenschaften-Fenster, setzen Sie seine GroundOffset Eigenschaft auf einen W

    GroundController properties

Verweise auf Referenzen

Um das Kern-Setup abzuschließen, musst du verschiedene Eigenschaften der ControllerManager Instanz mit Objekten innerhalb der Haupt-Model verknüpfen.

  1. Wählen Sie die ControllerManager Instanz.

    ControllerManager selected in Explorer window
  2. In dem Eigenschaften-Fenster, klicken Sie auf jede der folgenden Eigenschaften und dann, zurück im Explorer-Fenster, klicken Sie auf die entsprechende Instanz, um den verlinkenabzuschließen.

    1. Verknüpfen Sie die Eigenschaft ActiveController mit der Instanz GroundController .
    2. Verknüpfen Sie die RootPart Eigenschaft mit dem Teil, den Sie RootPart nannten.
    3. Verknüpfen Sie die ClimbSensor-Eigenschaft mit der ClimbSensor-Instanz.
    4. Verknüpfen Sie die GroundSensor-Eigenschaft mit der GroundSensor-Instanz.
    ControllerManager properties linked to instances within overall model

Testen

Mit Sensoren und Steuerelementen und mit Verweisen auf in Studio kannst du den Controller testen.

  1. Starten Sie einen Spieltest mit dem Run-Modus ( F8 ) , da Sie Ihren Avatar-Charakter in diesem Szenario nicht einfügen müssen.

    Rapid playtest options in Test tab of Studio
  2. RootPart sollte über dem Boden bei dem GroundController.GroundOffset Wert, den du in Hinzufügen von Controllern eingibst, auf der 0> Class.ControllerManager.FacingDirection0> Ebene drehen. Es sollte auch um die Ausrichtung mit dem 3> Class.ControllerManager.FacingDirectionVektorkraftdrehen.

    Character levitating above ground at GroundOffset, facing in direction of FacingDirection vector
  3. Experimentieren Sie mit verschiedenen Bewegungs- und Ausrichtungsrichtungen, indem Sie die MovingDirection und Class.ControllerManager

    ControllerManager properties for moving and facing direction
    ControllerManager
    GroundController properties for acceleration, deceleration, and ground offset
    BodenController

Benutzerdefinierte Sensoren

Die ControllerPartSensor.SensorMode-Optionen von Floor und Ladder laufen den genauen 2>Class.Humanoid Codes, sodass Sie ihn für die Rückwärtsskompatibilität verwenden können. Sie können jedoch auch anpassen, wie und wann walkable und climbable Teile erkannt werden

  1. Wechseln Sie den ControllerPartSensor.UpdateType von OnRead zu Manuell .

    • OnRead trifft die Ausgabe属性, die entsprechen Ihrem SensorMode jedes Mal, wenn Sie sie lesen. Es stellt im Grunde den Sensor in einen "nur-Lese-Modus" ein, bei dem alles, was Sie auf diese Eigenschaften schreiben, durch ihr internes Senseverhalten überschrieben wird.
    • Manuell schaltet das interne Sensorverhalten aus. Die Ausgabe属性 sind für Sie frei zu schreiben, wie Sie möchten, und die SensorMode tut nichts.
  2. Erstellen Sie ein Skript, das Ihre eigene Sensings-Logik ausführt und die Ausgaben an Ihre Sensor-Ausgabe-Eigenschaften schreibt. Normalerweise verwenden Sie eine Raumquerweis wie WorldRoot:Raycast() oder WorldRoot:Blockcast(), die ein RaycastResult zurückgibt. Ihr Skript kann dann die Eigenschaften des Ergebnisses auf

    Beachten Sie, dass Sie die Häufigkeit, mit der Ihre Anfragen ausgeführt werden und wie oft ihre Sensor-Instanz aktualisiert wird, verwalten müssen.

  3. Der ControllerManager wird weiterhin die von ihm zugewiesenen Sensoren verwenden, indem er die Daten, die Sie ihm übermitteln, erhält.