Skip to content

Agent

Абстракция нижнего уровня, решающая математические задачи ИИ, для персонажа. Использует NavMeshAgent агент Юнити.

Name

Имя агента, используется системное поле gameobject.name, тем самым видно в редакторе Юнити, а так же дублируется в полоске жизни HealthBar.

TargetPoint

Vector3 TargetPoint

Точка на карте куда движется агент.

WalkDistance

float WalkDistance (only get)

Какое расстояние в юнити метрах пройдено по пути к цели WalkTarget;

PathStatus

int PathStatus

0 - путь не задан, 1 - нужно рассчитать, 2 - путь расчитан

PathPoints

List\ PathPoints

Рассчитанный путь агента к цели (TargetPoint).

OnCheckDistance

event Send OnCheckDistance

Возникает, когда агент расчитывает какую дистанцию он прошел по назначенному пути.

OnWalkEnd

event Send OnWalkEnd

Возникает, когда агент заканчивает движение к заданной цели

Init()

Перед использование агента его нужно инициализировать.

Walk()

Walk(Vector3 argTarget, float stoppingDistance = 0.1f)

Дать задание агенту двигаться к точке argTarget, с точностью её достижения stoppingDistance.

Tick()

Init() запускает короутин, который раз в 0.1 сек. выполняет проверку, какая дистанция пройдена (CheckDistance()) и контролирует точки на пути движения и окончание пути (CheckWalkEnd()). Сами методы закрытые (private), но можно использовать события OnCheckDistance и OnWalkEnd для расширения логики.

CancelTarget()

Отменить движение к цели и остановиться.

CheckPosition()

Найти ближайшую доступную позицию на NavMesh карте и поместить в неё агента

DrawPath()

Рисует линией путь, куда движется агент