Nav3DAgent: Methods
Как упоминалось выше, вы можете использовать скрипт Nav3DAgent в качестве компонента для вашего игрового объекта и обращаться к нему через GetComponent()
.
Для управления Nav3DAgent реализованы следующие публичные методы:
- Применяет описание к вашему агенту.
public void SetDescription(Nav3DAgentDescription _Description)
- Команда двигаться к точке.
public void MoveTo(
Vector3 _Point,
Action _OnReach = null,
Action _OnPathfindingFail = null,
float? _ReachGap = null)
Параметры:
Vector3 _Point
- целевая точка.Action _OnReach
- колбэк достижения целевой точки.Action<PathfindingError> _OnPathfindingFail
- колбэк ошибки поиска пути.float? _ReachGap
- расстояние до целевой точки, необходимое для завершения следования и срабатывания _OnFinished.
- Команда последовательно двигаться по списку точек. Будет найден путь, проходящий через каждую точку массива.
public void MoveToPoints(
Vector3[] _Points,
bool _Loop = false,
bool _StartFromClosest = false,
bool _SkipUnpassableGoals = false,
float? _ReachGap = null,
Action _OnGoalPointPassed = null,
Action _OnFinished = null,
Action _OnPathfindingFail = null)
Параметры:
Vector3[]
_Points
- целевые точки пути.bool
_Loop
- замыкать ли движение по точкам. Если true, агент будет двигаться по последовательности точек бесконечно, переходя к первой каждый раз при достижении последней.bool
_StartFromClosest
- начинать ли движение с ближайшей точки массива, а не с первой.bool
_SkipUnpassableGoals
- будет ли пропускаться каждая точка, до которой поиск пути завершился с ошибкой. Если параметр установлен в false, то при неудаче поиска пути между любой парой точек, будет выполнен _OnFail колбэк, и поиск будет прекращен.float?
_ReachGap
- расстояние до целевой точки, необходимое для завершения следования и срабатывания _OnFinished.Action<Vector3> _OnGoalPointPassed
- колбэк, срабатывающий при прохождении агентом одной из целевых точек пути.Action
_OnFinished
- колбэк, срабатывающий при прохождении агентом последней точки пути. Колбэк не сработает, если _Loop = true.Action<PathfindingError> _OnPathfindingFail
- колбэк ошибки поиска пути.
Начать преследование transform цели.
public void FollowTarget(
Transform _Target,
bool _FollowContinuously,
float _TargetOffsetUpdate,
float _TargetReachDistance = 0,
Action _OnReach = null,
Action _OnFail = null,
Action _OnPathfindingFail = null)
Параметры:
Transform _Target
- цель для преследования.bool _FollowContinuously
- преследовать ли цель без окончания. Если true, то агент никогда не прекратит преследование и не вызовет _OnReach. При достижении цели просто будет находиться рядом, пока цель снова не отдалится.float _TargetOffsetUpdate
- величина смещения цели, для которой наступит перерасчет пути до цели.float _TargetReachDistance
- расстояние до transform цели, необходимое для завершения преследования и срабатывания _OnReach.Action _OnReach
- колбэк достижения цели преследования.Action _OnFail
- колбэк, срабатывающий в случае если transform цели был уничтожен или переведен в неактивное состояние на сцене.Action<PathfindingError> _OnPathfindingFail
- колбэк ошибки поиска пути.
- Останавливает выполнение текущей действующей команды
public void Stop()
- Возвращает агентов, удовлетворяющих предикату, находящихся в заданном радиусе от агента.
public Nav3DAgent[] GetAgentsInRadius(float _Radius, Predicate _Predicate = null)
Примеры по использованию Nav3DAgent вы можете найти в демо сценах, расположенных в папке Nav3D/Demo.