HoloLens の空間マップで NavMesh を使ってみる -その2-
前回の記事では NavMesh を利用してユニティちゃんを歩かせました。
今回は自分がいる位置から目的地までの経路を表示させてみます。
Unity での実装
HoloLens の空間マップから NavMesh を作成するところまでは前回と同じなので省略します。
前回の記事の 「Agent の設定」までを行った状態から続きを行います。
目的地を表すオブジェクトの作成
まず、目的地を表すオブジェクトとして Destination という名前で Cylinder を配置します。
さらに、以下のような DestinationPlacement.cs をアタッチし、Air-Tap した位置にオブジェクトが移動するようにします。
経路探索と経路表示
空の GameObject を作成し、Nav Mesh Agent と Line Renderer をアタッチします。
Line Renderer には色、幅、Material の設定を行います。
さらに、以下のような Human Navigation.cs をアタッチし、Inspector 上で Destination に先ほど作成した Destination オブジェクトを設定します。
Start 内で、
agent.updatePosition = false;
とすることで、NavMeshAgent の位置と NavMeshAgent が設定されている GameObject の位置が同期されなくなります。
また、Update 内で
agent.nextPosition = Camera.main.transform.position; //Agentの位置をHoloLensの位置に設定
とすることで、NavMeshAgent の位置が常に HoloLens の位置になるようにしています。
実行結果
以上で自分がいる位置から目的地までの経路が表示されるようになります。
せっかくなので、もう少し広い空間で試してみたいです。