前回記事の続きです。
bluebirdofoz.hatenablog.com
前回参考にしていた記事に続きがありましたので、こちらの動作も確認してみることにしました。
tarukosu.hatenablog.com
経路探索のロジックを応用して、現在位置から目的地の道筋を表示します。
本章ではSDユニティちゃんは用いません。
Agent設定を行ったその1終了時点のプロジェクトから作業を開始します。
bluebirdofoz.hatenablog.com
プロジェクトのバックアップがない場合は以下のように、SD_unitychan_humanoid オブジェクトと MoveToClickPoint オブジェクトを無効化する形でも問題ありません。
最初に、目的地を表すオブジェクトの Destination オブジェクトを以下の手順で作成します。
1.Hierarchyを右クリックして 3DObject -> Cilynder でオブジェクトを作成する。
2.オブジェクト名を Destination に設定する。
3.Transform を以下の設定値に変更する。
Position X 0 Y 0.5 Z 0 Rotation X 0 Y 0 Z 0 Scale X 0.05 Y 0.5 Z 0.05
参考記事の DestinationPlacement.cs スクリプトを作成し、Destination オブジェクトに追加します。
今回も unity 上で動作確認を行うため、DestinationPlacement.cs について以下のコードを追加しました。
・MoveToClickPoint.cs
void Update() { if (Input.GetKeyDown(KeyCode.Space)) { Debug.Log("click LOG"); var hitInfo = GazeManager.Instance.HitInfo; transform.position = hitInfo.point + transform.localScale.y * Vector3.up; } }
次に経路探索と経路表示を行うゲームオブジェクトを作成します。
1.空の GameObject を作成する。
2.オブジェクト名を HumanNavigation に設定する。
3.NavMeshAgent をアタッチする。
4.LineRenderer をアタッチする。
参考記事の HumanNavigation.cs スクリプトを作成し、HumanNavigation オブジェクトに追加します。
追加後、Inspector タブの Destination に Destination オブジェクトを設定します。
シーンを再生して、目的地に視点を合わせてスペースキーを押下すると……。
目的地までのルートが表示されました。成功です。
道案内のラインの太さや色は HumanNavigation オブジェクトの LineRenderer を設定することで変更可能です。