1. 추적 (Seek)
대상 오브젝트를 추적하는 가장 기본적인 행위이다.
에이전트의 가속도 값을 가져온뒤 정규화 후 에이전트의 이동 벡터에 계속해서 더해주기 때문에 에이전트의 이동 벡터가 에이전트의 최대속도까지 도달하는것을 볼 수 있다. 다만 거리 계산이 따로 없어 대상을 지나친다.
// 추적 행동
public class Seek : AgentBehaviour
{
public override Steering GetSteering()
{
Steering steering = new Steering();
steering.linear = target.transform.position - transform.position; // 방향은 Agnet가 타겟을 바라보는 방향
steering.linear.Normalize(); // 방향 벡터 정규화
steering.linear = steering.linear * agent.maxAccel; // 속도는 Agent의 최대 가속도
return steering;
}
}
파란색이 에이전트고 빨강색이 타겟오브젝트이다.

2. 회피 (Flee)
추적과 동일하되 방향이 에이전트가 타겟을 바라보는 반대 방향이다. 이 또한 거리계산이 따로 없기에 무한히 멀어지게 된다.
// 회피 행동
public class Flee : AgentBehaviour
{
public override Steering GetSteering()
{
Steering steering = new Steering();
steering.linear = transform.position - target.transform.position; // 방향은 타겟이 Agent를 바라보는 방향
steering.linear.Normalize();
steering.linear = steering.linear * agent.maxAccel;
return steering;
}
}

'Unity > Unity_AI' 카테고리의 다른 글
| 조작 행위_경로 추적하기(PathFollower) (0) | 2023.07.31 |
|---|---|
| 조작 행위_주변배회(Wander) (0) | 2023.07.30 |
| 조작 행위_도착(Arrive), 떠남(Leave) (0) | 2023.07.27 |
| 조작 행위_예상 추적(Pursue), 예상 회피(Evade) (0) | 2023.07.26 |
| 조작 행위(Steering Behaviour) 기본 골조 (0) | 2023.07.25 |