こんにちは、エンジニアのオオバです。
Unityを始めて早3年。
今まで一度も NavMesh
を使ったことがなかったので、とりあえず触ってみるという記事です。
NavMeshとはナビゲーション情報をメッシュに書き込んだメッシュで、それを使って知的に動くキャラクターを作成したり、経路探索が出来るようになります。
今回はプレーヤーが障害物を避けてゴールまで辿り着くという、最小限の構成でNavMeshを使ってみるということに焦点を合わせています。
まずはリファレンスを見ながらやってみます。
ナビメッシュの作成 - Unity マニュアル
↑この辺りを参考にいたしました。
👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!
1.NavMeshの準備
NavMeshを生成するためのステージを作ります。
![【Unity】NavMeshの始め方_0](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20170120/20170120161627.png#644__403)
- 地面
- 障害物
- プレーヤー
- ゴール
このようなシンプルな4つのGameObject構成です。
プレーヤーがゴールを目指して動くわけですが、障害物に当たあらないように設定をします。
2.NavMeshの設定
![【Unity】NavMeshの始め方_1](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20170120/20170120161821.png#536__209)
メニュー > Window > Navigation
でNavigationウィンドウを表示させ、Objectタブをクリックします。
地面のGameObject(Ground)を選択します。
Object
, Bake
, Areas
と3種のタブからObject
をクリックします。
Navigation Static
チェックボックスにチェックを入れ、Navigation Areaプルダウン
からWalkableを選びます。
![【Unity】NavMeshの始め方_2](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20170120/20170120161525.png#546__205)
次に障害物GameObject(Obstacle)を選択し、同様にNavigation Static
チェックボックスにチェックを入れます。Navigation Areaプルダウン
ではNot Walkableを選びます。
3.設定情報を元にNavMesh生成
![【Unity】NavMeshの始め方_3](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20170120/20170120162009.png#302__199)
Bakeボタン
をクリックしてNavMeshを生成します。
![【Unity】NavMeshの始め方_4](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20170120/20170120162030.png#638__434)
シーンビューで確認するとナビゲーション用の水色のメッシュ
が生成されます。青い部分が移動可能な範囲ということになります。
経路探索動作確認
![【Unity】NavMeshの始め方_5](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20170120/20170120165153.png#300__218)
このようにPlayerのGameobjectに NavMeshAgentコンポーネントを
アタッチしておきます。
リファレンスをサラ読みする限り、この NavMeshAgentコンポーネント
がプレーヤーの挙動を調整するもののようです。
そして下記のNavMeshPlayerコンポーネントもアタッチしgoal変数にゴールのGameObjectを割り当てて再生します。
![【Unity】NavMeshの始め方_6](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20170120/20170120162623.gif)
するとこのように、障害物を迂回してプレーヤーがゴールに辿り着くようになりました。
今回は最小構成のNavMeshを実装してみました。
- Bake部分
- NavMeshAgent
結構細かく設定ができそうな感じなので次回はその辺を深掘って行ければと思います
![](https://i.gyazo.com/977c7febd6a8743ca899e38d8d2be247.jpg#1920.0__1280.0)
この記事が気に入ったらフォローしよう
- Unity5.5.0p4