エージェントの挙動制御
AgentControllerはステートマシンやビヘイビアツリー、そしてC#スクリプトから制御できます。
Move
対象の位置に向かって移動します。
Pursuitとの違いは、対象の後方(以前いた場所)に向かって移動する点です。
- ステートマシンの挙動
- ビヘイビアツリーのアクション
- メソッド
Pursuit
対象の移動速度を考慮して予測した位置に向かって移動します。
Moveとの違いは、対象の移動先の前方に立ちふさがるように移動する点です。
対象の移動先予測はMovingEntityを参照して行われます。
- ステートマシンの挙動
- ビヘイビアツリーのアクション
- メソッド
Interpose
2つのオブジェクトの移動速度を考慮して間に割り込む位置に向かって移動します。
対象の移動先予測はMovingEntityを参照して行われます。
- ステートマシンの挙動
- ビヘイビアツリーのアクション
- メソッド
MoveToRandomPosition
指定位置を中心とする半径内のランダムな位置に向かって移動します。
Wanderとの違いは、行動範囲が円の半径内に制限されている点です。
- ステートマシンの挙動
- ビヘイビアツリーのアクション
- メソッド
Wander
現在の向きから指定範囲内のランダムな方向に向かって移動します。
MoveToRandomPositionとの違いは、行動範囲に制限なく移動する点です。
- ステートマシンの挙動
- ビヘイビアツリーのアクション
- メソッド
MoveOnWaypoint
Waypointに沿って移動します。
- ステートマシンの挙動
- ビヘイビアツリーのアクション
Escape
対象位置から離れる方向に移動します。
Evadeとの違いは、対象から遠ざかる方向にしか移動しない点です。
壁際のコーナーに追いやられた場合は、折り返して嵌るのを防ぎます。
- ステートマシンの挙動
- ビヘイビアツリーのアクション
- メソッド
Evade
対象の速さと自分の速さを考慮して予測した位置から離れるように移動します。
Escapeとの違いは、対象の移動方向がエージェントまでのベクトル上にない場合に急角度の方向転換が起きやすくなる点です。
対象の移動先予測はMovingEntityを参照して行われます。
壁際のコーナーに追いやられた場合は、折り返して嵌るのを防ぎます。
- ステートマシンの挙動
- ビヘイビアツリーのアクション
- メソッド
Hide
対象の位置と自分の位置の間に障害物が挟まるような位置に移動します。
NavMeshObstacleコンポーネントのついたオブジェクトとNavMeshAgentコンポーネントが付いたオブジェクトを障害物として扱います。
隠れ先の障害物の検索は障害物の数が多いほど負荷が高くなるため、移動頻度や検索方法の指定を見直すなど注意してください。
- ステートマシンの挙動
- ビヘイビアツリーのアクション
- メソッド
Warp
指定した位置に瞬時に移動します。
- ステートマシンの挙動
- ビヘイビアツリーのアクション
- メソッド
LookAt
指定した位置に向かってその場で回転します。
- ステートマシンの挙動
- ビヘイビアツリーのアクション
- メソッド
Stop
停止します。
- ステートマシンの挙動
- ビヘイビアツリーのアクション
- メソッド