Nanashi-softプログラマ専用Unityでゲーム開発


◇Unityでゲーム開発 -Mecanimを使ってキャラを動かしてみる(7-

Unity3Dには,ナビゲーションメッシュ(ナビメッシュ)と言うオブジェクトを自動的に移動させる仕組みがあります
以前はpro版のみでしたが,Ver 4.2からベイキング機能のみが無料ユーザにも解放されました

○ナビゲーションメッシュ設定方法

1.対象オブジェクト全てに Navigation Staticを設定する
Hierarchy上のオブジェクトをクリックして,Inspectorの右上にある Staticの右にある▼をクリック→Navigation Staticチェックする

Planeだけにセットしました
※移動させるオブジェクトにはセットしません

2.ベイキングする
メニューの Window→Navigationを選択
Bakeタブをクリック
Radius:移動可能範囲の余白をセット
Height:移動するオブジェクトの地面からの高さをセット
Max Slope:どれぐらいの傾斜まで移動対象にするかをセット
Step Height:どのぐらいの高さまでのオブジェクトを乗り越えるかをセット

以下の設定にしました
Radius:1
Height:0.1
Max Slope:45
Step Height:0.4

右下の Bakeボタンをクリック
すると,シーン上に青い枠が表示されます
この枠内が移動範囲とみなされます

3.移動させる側のオブジェクトの設定
Hierarchy上のオブジェクトをクリックして,メニューの Component→Navigation→Nav Mesh Agentを選択して追加

Projectの下の Create→C# Scriptで,スクリプトを追加
	void Start()
	{
		//移動先の座標を設定
		GetComponent<NavMeshAgent>().SetDestination(new Vector3(-4.0f, 0.0f, 4.0f));
	}
最初の位置はオブジェクトを配置している場所です
そこから,NavMeshAgentに指定した位置まで自動的に移動します

この状態で実行してみると,オブジェクトが真っ直ぐ移動していくはずです



TOPプログラマ専用Unityでゲーム開発

ネコミトリ りうるうり -ノーマル-+メイナの実験場~これくらいなら大丈夫でしょうか~