Agent
Абстракция нижнего уровня, решающая математические задачи ИИ, для персонажа. Использует NavMeshAgent агент Юнити.
Name
Имя агента, используется системное поле gameobject.name, тем самым видно в редакторе Юнити, а так же дублируется в полоске жизни HealthBar.
TargetPoint
Vector3 TargetPoint
Точка на карте куда движется агент.
WalkDistance
float WalkDistance (only get)
Какое расстояние в юнити метрах пройдено по пути к цели WalkTarget;
PathStatus
int PathStatus
0 - путь не задан, 1 - нужно рассчитать, 2 - путь расчитан
PathPoints
List\
Рассчитанный путь агента к цели (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()
Рисует линией путь, куда движется агент