あなたの世界を作りなさい
オブジェクトとの相互作用
キャラクターを追従するオブジェクトの実装
9min
NavMeshAgentコンポーネントを使用して、キャラクターの周りを追従するAIオブジェクトを実装できます。
このガイドでは、あなたの周りを追従するペットタイプのオブジェクトを実装します。
1) ペットオブジェクトが移動できるエリアを定義するために、ナビゲーションメッシュ(NavMesh)を設定します。
- 設定方法の詳細については、NavMeshガイドを参照してください。
- 背景オブジェクトのナビゲーションスタティックプロパティを設定し、ベイクタブのベイクボタンを押してナビゲーションメッシュを生成します。
2) ペットオブジェクトにNavMeshAgentコンポーネントを追加し、エージェントのサイズ、回転速度、加速度などを設定します。
- ここで、エージェントはNavMeshのナビゲーションシステムを使用するペットオブジェクトです。
- エージェントの値を変更することで、ペットの移動速度、移動時の回転速度と加速度、障害物を認識する高さなどを設定できます。
- Nav Meshエージェントの停止距離を3に設定し、ペットがプレイヤーから3の距離で停止するようにしました。
- 設定方法の詳細については、NavMeshAgentガイドを参照してください。
📘 Unity Navmesh Agent ドキュメント https://docs.unity3d.com/2021.3/Documentation/Manual/class-NavMeshAgent.html
1) 新しいTypeScriptを作成し、以下のようにPetControllerと名付け、スクリプトをペットオブジェクトに適用します。
スクリプトの説明
- スクリプトの最初に、_targetであなたのZEPETOキャラクターを指定します。
- Update関数内で、毎フレーム、NavMeshAgentのSetDestination関数を使用して、私のZEPETOキャラクターの位置をNavMeshのターゲットポイントに設定します。
2) 今、再生ボタンを押して実行すると、ペットオブジェクトがあなたのキャラクターを追いかけ、壁のような障害物の周りを移動するのが見えます。
1) キャラクターの体の上に座るペットを実装したい場合は、オブジェクトを取り付けることで実現できます。
📘 次のガイドを参照してください。 [ZEPETOキャラクターにオブジェクトを取り付ける]
2) 次のAttachPetControllerスクリプトを書きます。このスクリプトでは、変数Petがペットとして作成されるオブジェクトを指定します。
- ボディボーンタブで、ペットオブジェクトが取り付けられる体の部分を選択するためにドロップダウンメニューを開きます。
スクリプトの説明
- スクリプトが開始されると、ローカルプレイヤーを見つけてキャラクターのアニメーターを特定します。
- 変数bodyBoneで選択された体の部分がキャラクターのアニメーターにあるかを見つけて特定します。
- 見つけた場所にペットオブジェクトをインスタンス化し、作成します。以前に見つけたキャラクターのアニメーターの体の部分にペットオブジェクトを親子関係にします。
3) [▶︎(再生)]ボタンを押して実行すると、下の画像のように選択した体の部分にペットオブジェクトが作成されるのが見えるはずです。