ナビメッシュ」カテゴリーアーカイブ

【Unity】敵がスムーズに追いかけてこないとき

違うフロアにいるとき等にナビメッシュエージェントの目的地にプレイヤーの位置を毎フレーム設定すると、エージェントの移動がカクついてスムーズにプレイヤーを追尾しません。 毎フレーム目的地を入れて、経路が変わることが原因でしょ… 続きを読む »

【Unity】プレイヤーと同じ階のナビメッシュ上の点を目的地に設定する

建物の床などナビメッシュが上下に重なってしまうところでは、プレイヤーがいる階のナビメッシュ上の点がただしく取れないときがあるので、階を判別して目的地を探す方法を変えてみました。 まず、階ごとに別々のエリアを設定します。 … 続きを読む »

【Unity】同じ階のナビメッシュ上の点を探す

1階のナビメッシュの無い点から最も近い1階のナビメッシュ上の点を取得してみました。 まず上のように1階と2階と階段を作ってナビメッシュをベイクしました。1階のナビメッシュには穴が開いています。 青いプレイヤーにはタグを付… 続きを読む »

【Unity】複数作れるように変更して管理クラスを作る

敵が一体しか出現しないことにして作っている途中で複数の敵を作れるように変更し、管理クラスを作ってみました。 シーンには床に敵の目的地と中央のCubeがあります。目的地のルートのオブジェクトとCubeは敵のスクリプトにアタ… 続きを読む »

【Unity】敵が音と目視でプレイヤーを発見する

敵がプレイヤーを見ているときにゲージを上げて、満タンになったらプレイヤーを追尾し始めます。距離によってゲージの上がり具合を変えます。 また、プレイヤーが走っていてもゲージが上がります。 【Unity】敵がプレイヤーに気づ… 続きを読む »

【Unity】StateMachineBehaviourに付けたものが外れる

NPCに追加したスクリプトを、NPCのアニメーターコントローラーのStateMachineBehaviourのフィールドに入れて、NPCを非アクティブにすると、インスペクタの変数の欄にNoneと表示されてしまいます。 S… 続きを読む »

【Unity】敵がプレイヤーに気づいて追尾する #2

敵が走っているプレイヤーに気づいて追尾するでは、プレイヤーが走ると注意レベルのゲージが上がって、満タンになると敵がプレイヤーを追尾しはじめます。 走るのをやめるとゲージが下がって0になると追尾をやめますが、敵にプレイヤー… 続きを読む »

【Unity】敵が走っているプレイヤーに気づいて追尾する

走っているプレイヤーに気づいて、敵が追ってくるようにしてみました。 プレイヤーが走っているとゲージが上がっていって、満タンになると敵がプレイヤーを追尾し初めます。プレイヤーが走っていないときはゲージが下がっていって、ゲー… 続きを読む »

【Unity】ナビメッシュの経路の長さを表示する

ナビメッシュエージェントから目的地までの経路に沿った距離を表示してみます。 ナビメッシュの経路のコーナーポイントは、通過するたびに一つずつ減っていくようです。今ある2番目のコーナーポイントを通過すると、1番目のコーナーポ… 続きを読む »

【Unity】ナビメッシュの経路を取得して再利用する #1

ナビメッシュの経路を保存しておいて、別の目的地を設定した後に再設定してみます。 経路は目的地を設定してから数フレーム後に利用可能になるようです。まだ一度も目的地を設定していないときは、今いる場所が目的地になっていて、経路… 続きを読む »

【Unity】NPCにワープしながら移動させる

ナビメッシュエージェントが目的地に向かう時に小刻みにワープさせてみました。 まず、目的地を設定した後に、前の記事の方法で経路上の位置を等間隔に取得します。オレンジ色の球を置いたときにVector3のリストに球の位置を追加… 続きを読む »

【Unity】ナビメッシュの経路上に等間隔にオブジェクトを配置する

ナビメッシュエージェントが目的地へ向かう経路上に等間隔にオブジェクトを配置してみます。前の記事で取得した経路上のコーナーを使います。上のGIF画像ではコーナーに緑色の球が置かれています。 if (Input.GetKey… 続きを読む »

【Unity】ナビメッシュエージェントを自然に振り向かせる #2

前の記事では、ナビメッシュエージェントをアニメーションで振り向かせようとすると、ルートのオブジェクトはそのままで、ボーンだけが回転してしまいました。 これはアニメーションのインポート設定でRoot Transform R… 続きを読む »