【Unity】サクッとNavmeshを実装する手順
▶
【Unity】3Dアクションゲームを作ろう!#7 ステージの作成(Skybox・落下判定)
▶
【Unity】3Dアクションゲームを作ろう!#8 ステージの作成(スイッチ・扉)
▶
【Unity】3Dアクションゲームを作ろう!#9 プレイヤーのHP管理
▶
【初心者Unity】JsonUtilityクラスでJSONを扱う方法
▶
【初心者Unity】スクリプトからコンポーネントを追加する方法
UnityでサクッとNavmeshを実装する手順
応用とか置いといて、Navmeshのスタートアップ(経路生成して、ゴールまでエージェントが自動で移動する)までの手順(よく忘れるので…。)
※ Unity 2019.3.11 を使用しています。
[Unity_317×90]
1.ステージを作ります
適当でOK
2.Navigationウィンドウを開きます
Window → AI → Navigation (バージョンによって違うかも)
3.ステージのオブジェクトをNavigation Staticに
子要素もまとめて変更できるようにゲームオブジェクトを階層化しておくと◎
離れてる足場があるならOff Mesh Link Generation も選択(むかしは無かった気がする…)
4.Bakeします
Navigationウィンドウの Bakeタブの「Bakeボタン」をポチー
これで経路情報の生成は完了(青と赤が生成された経路情報)
5.エージェントの作成その1
エージェントとは、経路情報を頼りに目的地まで移動するオブジェクト
作り方は適当なゲームオブジェクトを用意して Nav Mesh Agent コンポーネントを入れるだけ!(簡単)
※ エージェントは焼きこまれた経路情報しか信用してないので、コライダーとかガン無視して移動するから注意!
6.エージェントの作成その2
エージェントをゴールに向かって進ませるには、スクリプト(名前は適当)をアタッチして以下を記述。
using UnityEngine; using UnityEngine.AI; public class PlayerController : MonoBehaviour { public Transform goal; void Update() { NavMeshAgent agent = GetComponent<NavMeshAgent>(); agent.destination = goal.position; } }
goal変数には目的地にしたい任意のゲームオブジェクトをD&Dで紐づければOK
7.シーンを再生してみよう
エージェントは経路上に配置してシーンを再生してみよう。
目的地に向かって自動で進んでいけば成功だ!
8.(ちょっとだけ応用)Navmesh的障害物を置こう
エージェントは通常のコライダーとかガン無視しちゃうので、経路上に普通のCubeとか置いても意味なし!
エージェントを邪魔したければ Nav Mesh Obstacle コンポーネントを入れよう!
▶
【Unity】3Dアクションゲームを作ろう!#7 ステージの作成(Skybox・落下判定)
▶
【Unity】3Dアクションゲームを作ろう!#8 ステージの作成(スイッチ・扉)
▶
【Unity】3Dアクションゲームを作ろう!#9 プレイヤーのHP管理
▶
【初心者Unity】JsonUtilityクラスでJSONを扱う方法
▶
【初心者Unity】スクリプトからコンポーネントを追加する方法
ゲーム制作関連のオススメ連載リンク
とっても手軽なゲーム制作体験!
Unityゲーム開発基礎
実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発