Class.ControllerManager 인스턴스는 지정된 RootPart 에 대한 시뮬레이션 이동 제어를 관리합니다. ControllerPartSensors 와 함께 사용하면 물리 기반 캐릭터 컨트롤러를 빌드할 수 있습니다.
코어 설정
ControllerManager 는 뿌리로 사용할 수 있는 BasePart 필요합니다. 이동 힘과 부품 감지는 이 부품에 있습니다.
Class.Part 또는 MeshPart를 선택하고 이름을 RootPart 로 지정합니다.
다른 구성 요소와 함께 조직을 위한 Model 인스턴스로 부품을 그룹화합니다.
모델에 ControllerManager 인스턴스를 추가합니다. 컨트롤러 관리자가 처음 Class.ControllerManager 에 나타나지 않으면 1>모델 내 최적화1> 메뉴의 4>Show only recommended objects4> 를 선택하십시오.
센서 설정
Class.ControllerPartSensor는 바닥 및 사다리를 감지하는 데 사용되는 코드와 동일한 코드로 부품을 감지합니다.
Class.ControllerPartSensor 를 RootPart 의 자식으로 삽입하고 이름을 GroundSensor 로 변경하여 목적을 식별하기가 더 쉽습니다.그런 다음 <
Class.ControllerPartSensor 를 다른 RootPart 의 자식으로 삽입하고 이름을 ClimbSensor 로 변경합니다. 그런 다음 속성 창에서 1> Class.ControllerPartSensor.SearchDistance|
컨트롤러 설정
Class.GroundController 및 ClimbController와 같은 컨트롤러 인스턴스는 세계와 상호 작용하는 방법을 관리자 부품에 알려줍니다. 이 컨트롤러 인스턴스는 감지기 설정에 있는 센서와 함께 작동합니다.
Class.GroundController 및 ClimbController를 클래스 ControllerManager 의 자식으로 삽입합니다.
새로운 GroundController 인스턴스를 선택한 다음, 속성 창에서 Class.GroundController.GroundOffset|GroundOffset 2>속성2>
참조 연결
코어 설정을 완료하려면 주요 ControllerManager 내에 있는 개체에 다양한 속성의 Model 인스턴스를 연결해야 합니다.
선택합니다 ControllerManager 인스턴스.
속성 창에서 다음 속성을 클릭한 다음 탐색기 창으로 돌아가서 해당 인스턴스를 완료하려면 연결클릭하십시오.
- Class.ControllerManager.ActiveController|ActiveController 속성을 GroundController 인스턴스에 연결합니다.
- Class.ControllerManager.RootPart|RootPart 속성을 루트 파트 라는 이름의 부품에 연결하십시오.
- Class.ControllerManager.ClimbSensor|ClimbSensor 속성을 ClimbSensor 인스턴스에 연결하십시오.
- Class.ControllerManager.GroundSensor|GroundSensor 속성을 GroundSensor 인스턴스에 연결합니다.
테스트
센서 및 컨트롤러 를 플레이스참조를 연결한 상태에서 Studio에서 컨트롤러를 테스트할 수 있습니다.
이 시나리오에서 아바타 캐릭터를 삽입할 필요가 없기 때문에 플레이테스트를 시작하세요 모드(F8)를 사용하여 플레이테스트를 시작하십시오.
RootPart 는 설정한 GroundController.GroundOffset 값으로 지상 위에 떠 있어야 합니다. 또한 Controlers 추가 에 설정된 0> Class.ControllerManager.FacingDirection0> 값과 함께 회전해야 합니다.
사용자 정의 센서
Class.Humanoid 및 Floor 옵션과 Ladder 및 1>Class.SensorMode|Ladder1>의 옵션은 4>Class.Humanoid4> 센서 코드를 정확하게 실행하여 뒤로 호환할 수
OnRead에서 Class.ControllerPartSensor.UpdateType 를 수동 으로 전환합니다.
- OnRead 는 모든 때에 해당 출력 속성을 업데이트하여 귀하의 SensorMode 을 읽을 때마다 해당 출력을 업데이트합니다. 이것은 내부 센싱 동작에 의해 쓰여지는 모든 것을 덮어씁니다.
- 수동 은 내부 센싱 동작을 종료합니다. 출력 속성은 원하는 대로 작성하여 사용자에게 무료이지만 SensorMode 는 아무것도 하지 않습니다.
자신의 감지 논리를 수행하고 출력을 센서 출력 속성에 쓸 스크립트를 생성합니다. 일반적으로 WorldRoot:Raycast() 또는 WorldRoot:Blockcast() 와 같은 공간 쿼리를 사용하여 결과 속성을 설정하고 센서 대�
쿼리 실행 간격 및 센서 인스턴스 업데이트 간격을 관리해야 합니다.
Class.ControllerManager는 할당된 센서를 계속 사용하고, 패스하는 데이터를 가져갑니다.