Class.ControllerManager インスタンスは、割り当てられた RootPart のシミュレートされたモーションコントロールを管理します。ControllerPartSensors と一緒に、物理ベースのキャラクターコントローラーを構築するために使用できます。
コアのセットアップ
ControllerManager には、BasePart がルートとして使用される必要があります。移動力とパーツセンサーはこのパーツにあります。
Class.Part または MeshPart を選択し、 RootPart と名前付けます。
パーツを他のコンポーネントと一緒に管理するための Model インスタンスとしてグループ化します。
モデルに Class.ControllerManager インスタンスを追加します。 ControllerManager がオブジェクトの挿入メニューに最初に表示されない場合は、1>メニューの挿入設定1> で 4>Show only recommended objects4> を 7>チェックしない7>です。
センサーの設定
Class.ControllerPartSensor は、Humanoid が床や階段を検出するために使用するコードと同じコードでパーツを検出します。
Class.ControllerPartSensor を RootPart の子として挿入し、 GroundSensor で簡単にその目的を識別するように名前を変更します。然後、1>プロパ
Class.ControllerPartSensor を RootPart の子として挿入し、 ClimbSensor と名前を変更します。次に、1>プロパティ1> ウィンドウで、4> Class.ControllerPartSensor.SearchDistance
コントローラのセットアップ
コントローラーインスタンスのように GroundController や ClimbController は、センサー設定 で設定したセンサーと共同で世界を操作する方法を、2> Class.GroundController2> に伝えます。
Class.GroundController と ClimbController を子として ControllerManager に入れる。
新しい GroundController インスタンスを選択し、プロパティ ウィンドウで、GroundOffset プロ
参照リンク
コアセットアップを完了するには、ControllerManager インスタンス内のオブジェクトに、メインの Model オブジェクトへのリンクを必要とします。
Select the ControllerManager instance.
In the プロパティ window, click each of the following properties and then, back in the エクスプローラー window, click the respective instance to complete the lin紐づける.
- Class.ControllerManager.ActiveController|ActiveController プロパティを GroundController インスタンスにリンクします。
- Class.ControllerManager.RootPart|RootPart プロパティを RootPart にリンクします。
- Class.ControllerManager.ClimbSensor|ClimbSensor プロパティを ClimbSensor インスタンスにリンクします。
- Class.ControllerManager.GroundSensor|GroundSensor プロパティを GroundSensor インスタンスにリンクします。
テスト
センサーとコントローラーを配プレースし、参照されたリファレンスを含めて Studio でコントローラーをテストできます。
このスケートボードシナリオでは、アバターキャラクターをこのスケートボードに挿入する必要がないため、Run モードを使用してプレイテストを開始します。
RootPart は、GroundController.GroundOffset の価値であなたが Add Controllers で設定した上に浮く必要があります。また、0> Class.ControllerManager.FacingDirection0> ベクトルと一致するように回転する必要があります。
カスタムセンサー
Class.Humanoid と Floor のオプションは、Ladder と 1>Class.SensorMode|Ladder1> の実行すべての 4>Class.Humanoid4> センサーコードを使用して、7>Class.Humanoid
[オープンリード] から [マニュアル] に1> Class.ControllerPartSensor.UpdateType1> を切り替えます。
- OnRead は、読み取るたびに SensorMode に対応する出力プロパティを更新します。基本的に、これらのプロパティに書き込むと、センサーは内部のセンシング動作により上書きされます。
- マニュアル は、内膜センシング動作をオフにします。出力プロパティは、好きなように書き込むことができますが、SensorMode は何もしません。
自分の感覚ロジックを実行し、出力をセンサーの出力プロパティに書き込むスクリプトを作成します。通常、これは WorldRoot:Raycast() または WorldRoot:Blockcast() などの空間クエリを使用します。スクリプトは、RaycastResult を返
注意してください、あなたのクエリを実行してセンサーインスタンスを更新する頻度を管理する必要があります。
Class.ControllerManager は、割り当てられたセンサーを使用し続け、パスするデータを取得します。