読者です 読者をやめる 読者になる 読者になる

デジタルフロッグ

Unityのアプリの開発をしながらいろいろと忘れないための備忘録でございます。

NavMeshを使って指定した場所に移動させる方法その1

3D C# UI Unity

f:id:karaagedigital:20160916151944g:plain

NavMeshって知ってる人も多いと思いますが本当これって最初しった時はかなりびっくりというかこれは楽だなーと思った事なので、ちょっとこの事を記事にしておきたいと思います。

NavMeshはRigidbodyとはまた別で動いているので物理現象を無視して移動します。

f:id:karaagedigital:20160916153008g:plain

いやーゴジラみたいになってますね。

NavMeshの何がすごいの?

これが何をしているのかわからないという人の為に。まず奥のCubeに向かって手前のキャラクターがあるいているのはわかると思います。

まっすぐに歩いているのでNavMeshのすごさがわからないと思いますのでまずこちらをば

f:id:karaagedigital:20160916153546g:plain

二つの間にこんな感じで大きな壁を作りました。普通ならまっすぐ進んで壁にぶつかりますね

しかしこれをみて下さい!

f:id:karaagedigital:20160916153816g:plain

こんな感じで壁を避けて最短ルートで壁の向こうのCubeに到着するように移動してくるんです。

NavMeshってすごいですよねー。

この動きを使うために必要な大変なプログラミングは必要ありません。指定した位置まで最短ルートでちゃんと移動してくれます。間に穴が空いてたら穴は避けてくれますし、壁もちゃんと迂回してくれます。

GIFバンバンはるとスマホで見ると重くなっちゃうので、とりあえず詳しくはちょっと別記事で明日書きたいと思います。