Instancja ControllerManager zarządza sterowaniem ruchu symulowanym dla swojego przypisanego RootPart . Wraz z ControllerPartSensors można go używać do budowania sterowania ruchu opartego na fizyce.
Ustawienia rdzenia
ControllerManager wymaga BasePart do użycia jako jego korzenia. Siły ruchu i wykrywanie części będą na tej części.
Grupuj część jako instancję Model dla organizacji wraz z innymi komponentami.
Dodaj instancję ControllerManager do modelu. Jeśli ControllerManager nie pojawia się najpierw w menu wstawiania obiektów, Odznacz “Pokaż tylko zalecane obiekty” w menu w wstawieniu ustawień 2>。2>
Ustawienia czujników
A ControllerPartSensor wykrywa części z tego samego kodu, który Humanoid używa do wykrywania podłogi i schodów.
Utwórz ControllerPartSensor jako dziecko RootPart i zmień jego nazwę na GroundSensor dla łatwiejszego zidentyfikowania jego celu. Następnie w oknie 1> Właściwości1>
Utwórz kolejny ControllerPartSensor jako dziecko RootPart i zmień jego nazwę ClimbSensor . Następnie, w oknie 1> Właściwości1>, ustaw jego 4> Class.ControllerPartSensor.SearchDistance|SearchDistance
Ustawienia kontrolera
Instancje kontrolera, takie jak GroundController i ClimbController, mówią części zarządzającej, jak interagować z światem, pracując wraz z czujnikami, które skonfigurowałeś w SensorSetup .
Wprowadź obie GroundController i ClimbController jako dzieci ControllerManager.
Wybierz nową instancję GroundController i następnie w oknie Właściwości ustaw jego Class.GroundController.GroundOffset|GroundOffset ”wartość na wartość, do które
Łączenie odniesień
Aby ukończyć ustawienia rdzenia, będziesz musiał powiązać różne właściwości instancji ControllerManager z obiektami w głównym Model .
Wybierz instancję ControllerManager.
W Oknie Proprietści, kliknij każdą z następujących cech, a następnie, w Oknie Explorer, kliknij odpowiednią instancję, aby ukończyć łączyć.
- Połącz właściwość ActiveController z instancją GroundController .
- Połącz właściwość RootPart z częścią o nazwie RootPart .
- Połącz właściwość ClimbSensor z instancją ClimbSensor .
- Połącz właściwość GroundSensor z instancją GroundSensor .
Testowanie
Z czujnikami i sterownikami w miejsce, i z odnośnikami powiązanymi, możesz testować sterownik w Studio.
Rozpocznij testowanie używając trybu Biegnij ( F8 ) ponieważ nie musisz wstawiać swojego postaci awatara w tym scenariuszu.
RootPart powinien znajdować się nad ziemią w wartości GroundController.GroundOffset , którą ustawiłeś w Dodawanie sterowników. Powinien również obrócić się, aby zbieć się z wektorem 0> Class.ControllerManager.FacingDirection0>.
Niestandardowe czujniki
Opcje ControllerPartSensor.SensorMode z Floor i Ladder wykonują dokładny kod czujnika 2>Class.Humanoid2>, pozwalając używać go do kompatybilności z przeszłością. Możesz jednak również dostosować, jak i kied
Przełącz ControllerPartSensor.UpdateType z OnRead na Manual .
- OnRead aktywuje właściwości wyjścia, aby aktualizować odpowiadające swojemu SensorMode każdym razem, gdy je czytasz. W zasadzie umieszcza czujnik w trybie "tylko czytania", w którym wszystko, co piszesz do tych właściwości, zostaje ponadpisane przez jego zachowanie wewnętrznego czucia.
- Ręczny wyłącza zachowanie sensingu wewnętrznego. Wyjściowe właściwości są dla Ciebie darmowe, aby napisać, jak chcesz, a SensorMode nie robi nic.
Utwórz skrypt, który wykonuje swoją własną logikę czucia i zapisuje wyniki na swojej matrycy wyników. Zwykle używasz wizualnej kwerty, takiej jak WorldRoot:Raycast() lub WorldRoot:Blockcast(), która zwraca wynik RaycastResult. Twoój skrypt może wtedy wziąć wynik na parametrach i ustawić go
Uwaga, że będziesz musiał zarządzać częstotliwością wykonania zapytania i aktualizacją ich instancji instancja.
Class.ControllerManager będzie nadal używać czujników, do których została przypisana, przyjmując dane, które przesyłasz do niej.