エージェントの挙動制御

AgentControllerはステートマシンビヘイビアツリー、そしてC#スクリプトから制御できます。

Move

Move

対象の位置に向かって移動します。
Pursuitとの違いは、対象の後方(以前いた場所)に向かって移動する点です。

Pursuit

Pursuit

対象の移動速度を考慮して予測した位置に向かって移動します。
Moveとの違いは、対象の移動先の前方に立ちふさがるように移動する点です。

対象の移動先予測はMovingEntityを参照して行われます。

Interpose

Interpose

2つのオブジェクトの移動速度を考慮して間に割り込む位置に向かって移動します。

対象の移動先予測はMovingEntityを参照して行われます。

MoveToRandomPosition

MoveMoveToRandomPositionOnWaypoint

指定位置を中心とする半径内のランダムな位置に向かって移動します。
Wanderとの違いは、行動範囲が円の半径内に制限されている点です。

Wander

Wander

現在の向きから指定範囲内のランダムな方向に向かって移動します。
MoveToRandomPositionとの違いは、行動範囲に制限なく移動する点です。

MoveOnWaypoint

MoveOnWaypoint

Waypointに沿って移動します。

Escape

Escape

対象位置から離れる方向に移動します。
Evadeとの違いは、対象から遠ざかる方向にしか移動しない点です。

壁際のコーナーに追いやられた場合は、折り返して嵌るのを防ぎます。

Evade

Evade

対象の速さと自分の速さを考慮して予測した位置から離れるように移動します。
Escapeとの違いは、対象の移動方向がエージェントまでのベクトル上にない場合に急角度の方向転換が起きやすくなる点です。

対象の移動先予測はMovingEntityを参照して行われます。

壁際のコーナーに追いやられた場合は、折り返して嵌るのを防ぎます。

Hide

Hide

対象の位置と自分の位置の間に障害物が挟まるような位置に移動します。
NavMeshObstacleコンポーネントのついたオブジェクトとNavMeshAgentコンポーネントが付いたオブジェクトを障害物として扱います。
隠れ先の障害物の検索は障害物の数が多いほど負荷が高くなるため、移動頻度や検索方法の指定を見直すなど注意してください。

Warp

Warp

指定した位置に瞬時に移動します。

LookAt

LookAt

指定した位置に向かってその場で回転します。

Stop

停止します。