Unity2018.1.5f1
Windows10
□
NavMeshAgentでキャラクターを決まったところを巡回させる方法は公式サイトにあります。
今回はその方法を改造してプレイヤーが決まった距離まで近づいたら追ってきて、別の決まった距離だけ離れたらまた巡回に戻るようにしてみました。
目次
ベイクする
NavMeshAgentで動かすキャラクターが移動できる範囲を設定することをベイクすると言います。
やり方はまず移動する床のオブジェクトのInspectorの右上のStaticからNavigation Staticを選択します。
次はNavigationウィンドウを出します。
Window > Navigation
そうしたらNavigationウィンドウのBakeタブの底のBakeボタンをクリックします。
そうすると床のオブジェクト青いに移動できる範囲が示されます。
それをNavMeshと言うそうです。
巡回する地点を作る
次に巡回する時の目標になる地点を作ります。
どんなオブジェクトでも良いのですが今回はSphereを4つ設置することにしました。
そうそう、巡回&追跡させたいオブジェクトをNavMesh内に設置してください。
私はユニティちゃんにしました。
■巡回&追跡のスクリプトを設定する
スクリプトを書く
以下のスクリプトを巡回&追跡させたいオブジェクトにアタッチしてください。
スポンサーリンク
巡回する地点を登録する
次はそのスクリプトをアタッチしたオブジェクトのInspectorに巡回地点のオブジェクトを登録します。
Pointsの文字の左の三角をクリックし、出てきたSizeの欄に登録するオブジェクトの数を入れ、その数だけできた空欄に巡回する順にオブジェクトを入れて出来上がりです。
完成図
赤いワイヤーフレームの中に入ると追跡モードになり、青いワイヤーフレームから出るとまた巡回に戻ります。
さて、このようにできたでしょうか?
プレイヤーの操作方法の設定はこちらです。
【UnityC#講座】ユニティちゃんをマウスカーソルの方向に移動させる
ワイヤーフレームの赤と青の円は追跡開始する範囲と追跡を止める範囲を示しています。
Gameウィンドウで出すにはその右上のGizmosをクリック、そして巡回&追跡するオブジェクトをHierarchyで選択してください。
■関連記事
【UnityC#講座】ユニティちゃんにキソラちゃんがついてくるようにする【NavMeshAgent、Blend Tree】
【UnityC#講座】ユニティちゃんたちをドラクエっぽく一列に移動や順番変更させる【List、for文、NavMeshAgent】
【UnityC#講座】見つけたら追いかけてくる監視ユニティちゃん【NavMeshAgent】
【UnityC#講座】ユニティちゃんをモブキャラのごとくランダム移動させる【NavMeshAgent】
この作品はユニティちゃんライセンス条項の元に提供されています
スポンサーリンク