NavMeshを使って指定した場所に移動させる方法その2
昨日に続いて今日もNavMeshについて書いていきたいと思います。
まず移動させたい床を準備して下さい。
自分は3DオブジェクトのCubeを平べったく伸ばして使いました。
それでInspectorの右上にあるStaticですが、これにチェックを入れて下さい。
次にWindowからNavigationを選択して下さい。
そうするとInspectorの隣の方にNavigationというタブが出てくると思います。
ここで登れる坂の角度や、段差などの設定もできます。
とりあえず今回は平面のCubeをつかっているのでそのまま右下のBakeボタンを押しましょう。
そうするとCube(床の方)がこんな感じで青くなります。
続いて移動させたいオブジェクトのInspectorにNavMeshコンポーネントを追加します。
それではそのままAddComponentからScriptを追加していきます。
public GameObject Target;
void Start(){
GetComponent<NavMeshAgent>().SetDestination(Target .transform.position);
}
これを書いて保存してInspectorのTargetにTargetにしたいものをアタッチします。
ではこれで動かしてみましょう!
こんな感じでターゲットに向かってあるいてくれたと思います。
ちなみに・・・
こんな感じで曲がり角があっても上り坂があってもちゃんと到着してくれます。
ちなみにターゲットの赤い棒がうにうに動いてるのはHPゲージ的なのを作っているのですが、2Dゲージなので、横から見るとペラペラになります。
なのでカメラに対して常に正面向くように設定しています。