NavigationAgent2D
2D-агент, используемый для поиска пути к нужной позиции с обходом препятствий.
2D-агент, используемый для поиска пути к нужной позиции с обходом препятствий.
2D агент, используемый для поиска пути к заданной позиции с избеганием статических и динамических препятствий. Этот расчёт может использоваться родительским узлом для динамического перемещения по пути. Для корректной работы требуются навигационные данные.
Динамические препятствия обходят с помощью функции предотвращения столкновений RVO. Избегание вычисляется до физических условий, поэтому информацию о поиске пути можно безопасно использовать на этапе физических условий.
Примечание: После установки свойства NavigationAgent2D.TargetPosition метод NavigationAgent2D.GetNextPathPosition необходимо использовать один раз в каждом кадре физической модели для обновления внутренней логики пути навигационного агента. Возвращаемая им позиция вектора должна использоваться в качестве следующей позиции движения для родительского узла агента.
Примечание: Некоторые методы этого класса, такие как NavigationAgent2D.GetNextPathPosition, могут инициировать новый расчёт пути. Вызов этих методов в обратном вызове сигнала агента, например NavigationAgent2D.WaypointReached, может привести к бесконечной рекурсии. Рекомендуется вызывать эти методы на этапе физики или, в качестве альтернативы, откладывать их вызов до конца кадра (см. ReckfellObject.CallDeferred или ReckfellObject.ConnectFlags.Deferred).
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
NavigationAgent2DКонструктор
public NavigationAgent2D();Свойства30
AvoidanceEnabledСвойство
public bool AvoidanceEnabled { get; set; }Включает расчёт избегания. Передавайте желаемую Velocity и применяйте скорость из VelocityComputed к телу. Сам флаг не выполняет движение и не гарантирует обход любых препятствий.
AvoidanceLayersСвойство
public uint AvoidanceLayers { get; set; }Ударное поле, определяющее уровни избегания для этого навигационного агента. NavigationAgent2D.AvoidanceMask избегает этого агента.
AvoidanceMaskСвойство
public uint AvoidanceMask { get; set; }Ударное поле, определяющее, какие другие агенты избегают и препятствия этот Навигационный Агент избежит, когда немного совпадет, по крайней мере, один из их NavigationAgent2D.AvoidanceLayers.
AvoidancePriorityСвойство
public float AvoidancePriority { get; set; }Агент не корректирует скорость для других агентов, которые соответствуют NavigationAgent2D.AvoidanceMask, но имеют более низкий NavigationAgent2D.AvoidancePriority. Это, в свою очередь, заставляет других агентов с более низким приоритетом корректировать свои скорости еще больше, чтобы избежать столкновения с этим агентом.
DebugEnabledСвойство
public bool DebugEnabled { get; set; }Если true, отображаются визуальные отладочные данные для этого агента.
DebugPathCustomColorСвойство
public Color DebugPathCustomColor { get; set; }Если NavigationAgent2D.DebugUseCustom равен true, то этот цвет используется для этого агента вместо глобального цвета.
DebugPathCustomLineWidthСвойство
public float DebugPathCustomLineWidth { get; set; }Если NavigationAgent2D.DebugUseCustom равен true, то эта ширина линии используется для отрисовки путей для этого агента вместо глобальной ширины линии.
DebugPathCustomPointSizeСвойство
public float DebugPathCustomPointSize { get; set; }Если NavigationAgent2D.DebugUseCustom равен true, то для рендеринга точек пути этого агента, вместо глобального размера точки, используется этот растеризованный размер точки.
DebugUseCustomСвойство
public bool DebugUseCustom { get; set; }Если true, то вместо глобального цвета используется определенный NavigationAgent2D.DebugPathCustomColor для этого агента.
MaxNeighborsСвойство
public int MaxNeighbors { get; set; }Максимальное количество соседей, которых может учитывать агент.
MaxSpeedСвойство
public float MaxSpeed { get; set; }Ограничение скорости расчёта избегания. Согласуйте с желаемой скоростью тела; изменение этого свойства не задаёт движение автоматически.
NavigationLayersСвойство
public uint NavigationLayers { get; set; }Маска поверхностей и связей для маршрута агента. Любой общий бит допускает соответствующий регион; это не условие наличия всех ключей. Изменение при активной цели запрашивает перестроение пути, что проверено переключением 1 → 0 → 1.
NeighborDistanceСвойство
public float NeighborDistance { get; set; }Расстояние для поиска других агентов.
PathDesiredDistanceСвойство
public float PathDesiredDistance { get; set; }Допуск подхода к очередной точке пути в единицах карты. Подбирайте под скорость и шаг физики: слишком малый допуск может вызвать перескок и возврат к точке.
PathMaxDistanceСвойство
public float PathMaxDistance { get; set; }Максимальное расстояние, на которое агент может отойти от идеального пути до конечной позиции. Это может произойти из-за попыток избежать столкновений. При превышении максимального расстояния он пересчитывает идеальный путь.
PathMetadataFlagsСвойство
public NavigationPathQueryParameters2D.PathMetadataFlags PathMetadataFlags { get; set; }Дополнительная информация для возврата по пути навигации.
PathPostprocessingСвойство
public NavigationPathQueryParameters2D.PathPostProcessing PathPostprocessing { get; set; }Постобработка пути, примененная к необработанному коридору пути, найденному NavigationAgent2D.PathfindingAlgorithm.
PathReturnMaxLengthСвойство
public float PathReturnMaxLength { get; set; }Максимально допустимая длина возвращаемого пути в мировых единицах. При превышении этой длины путь будет обрезан.
PathReturnMaxRadiusСвойство
public float PathReturnMaxRadius { get; set; }Максимально допустимый радиус возвращаемого пути от начала пути в мировых единицах. При превышении этого радиуса путь будет обрезан. По сравнению с NavigationAgent2D.PathReturnMaxLength, это позволяет агенту пройти значительно больше, если ему потребуется обойти угол.
Примечание: При этом будет выполнено обрезание сферы с учётом только фактических точек пути навигационной сетки, при этом первая точка пути будет находиться в центре сферы.
PathSearchMaxDistanceСвойство
public float PathSearchMaxDistance { get; set; }Максимальное расстояние, на которое может отдалиться искомый полигон от начального полигона, прежде чем поиск пути отменит поиск пути к целевому полигону (возможно, недостижимому или очень удалённому). В этом случае поиск пути сбрасывается и строит путь от начального полигона до полигона, который был найден ближайшим к целевой позиции. Значение 0 или ниже считается неограниченным. В случае неограниченного значения поиск пути будет искать все полигоны, соединённые с начальным полигоном, пока не будет найден целевой полигон или пока не будут исчерпаны все доступные варианты поиска полигонов.
PathSearchMaxPolygonsСвойство
public int PathSearchMaxPolygons { get; set; }Максимальное количество полигонов, которые будут просмотрены до того, как поиск пути отменит поиск пути к целевому полигону (возможно, недостижимому или очень удалённому). В этом случае поиск пути сбрасывается и строит путь от начального полигона до полигона, который был найден ближайшим к целевой позиции. Значение 0 или меньше считается неограниченным. В случае неограниченного поиска пути поиск пути будет искать все полигоны, соединённые с начальным полигоном, пока не будет найден целевой полигон или пока не будут исчерпаны все доступные варианты поиска полигонов.
PathfindingAlgorithmСвойство
public NavigationPathQueryParameters2D.PathfindingAlgorithmEnum PathfindingAlgorithm { get; set; }Алгоритм поиска пути, используемый в запросе пути.
Радиус
RadiusСвойство
public float Radius { get; set; }Радиус круга агента для избегания. Не меняет физический коллайдер и не перезапекает навигационный меш под другой размер персонажа.
SimplifyEpsilonСвойство
public float SimplifyEpsilon { get; set; }Упрощение пути в мировых единицах.
SimplifyPathСвойство
public bool SimplifyPath { get; set; }Если true, будет возвращена упрощенная версия пути с удаленными менее критическими точками пути. Степень упрощения контролируется NavigationAgent2D.SimplifyEpsilon. Упрощение использует вариант алгоритма Ramer-Douglas-Peucker для прореживания точек кривой.
Упрощение пути может быть полезно для смягчения различных проблем следования по пути, которые могут возникнуть с определенными типами агентов и поведением сценария. Например, «рулевое управление» или избегание в «открытых полях».
TargetDesiredDistanceСвойство
public float TargetDesiredDistance { get; set; }Допуск достижения исходной цели и сравнения конца найденного пути с целью. Большое значение может завершить маршрут раньше ожидаемого.
TargetPositionСвойство
public Vector2 TargetPosition { get; set; }Глобальная цель агента. Присваивание запрашивает новый маршрут; не задавайте ту же цель каждый кадр без необходимости. Агент не перемещает родителя автоматически.
TimeHorizonAgentsСвойство
public float TimeHorizonAgents { get; set; }Минимальное количество времени, в течение которого скорость этого агента, рассчитанная с помощью алгоритма предотвращения столкновения, безопасна по отношению к другим агентам. Чем больше число, тем быстрее агент будет реагировать на другие агенты, но меньше свободы в выборе скорости. Слишком высокое значение значительно замедляет движение агента. Должно быть положительным.
TimeHorizonObstaclesСвойство
public float TimeHorizonObstacles { get; set; }Минимальное количество времени, в течение которого скорость этого агента, рассчитанная с помощью алгоритма предотвращения столкновения, безопасна с точки зрения статических препятствий. Чем больше число, тем быстрее агент будет реагировать на статические преграды, но меньше свободы в выборе скорости. Слишком высокое значение значительно замедляет движение агента. Должно быть положительным.
VelocityСвойство
public Vector2 Velocity { get; set; }Желаемая скорость для расчёта избегания, в единицах карты в секунду. Не умножайте её на delta при передаче затем в CharacterBody2D.MoveAndSlide. Итоговая скорость приходит через VelocityComputed.
Методы80
DistanceToTargetfloat
public float DistanceToTarget();Возвращает расстояние до целевой позиции, используя глобальную позицию агента. Пользователь должен установить NavigationAgent2D.TargetPosition, чтобы это было точным.
floatGetAvoidanceEnabledbool
public bool GetAvoidanceEnabled();boolGetAvoidanceLayerValuebool
public bool GetAvoidanceLayerValue(int layerNumber);Возвращается ли указанный слой NavigationAgent2D.AvoidanceLayers Включена битмаска, при условии a layer_number от 1 до 32 лет.
| Имя | Тип | По умолчанию |
|---|---|---|
layerNumber | int | — |
boolGetAvoidanceLayersuint
public uint GetAvoidanceLayers();uintGetAvoidanceMaskuint
public uint GetAvoidanceMask();uintGetAvoidanceMaskValuebool
public bool GetAvoidanceMaskValue(int maskNumber);Возвращается ли указанная маска NavigationAgent2D.AvoidanceMask Включена битмаска, при условии a mask_number от 1 до 32 лет.
| Имя | Тип | По умолчанию |
|---|---|---|
maskNumber | int | — |
boolGetAvoidancePriorityfloat
public float GetAvoidancePriority();floatGetCurrentNavigationPathVector2[]
public Vector2[] GetCurrentNavigationPath();Читает текущий массив пути агента. Не перемещает тело; точки могут закончиться у доступной границы, а не у исходной цели.
Vector2[]Массив Vector2[] текущего результата; проверяйте Length перед обращением к первой или последней точке.
GetCurrentNavigationPathIndexint
public int GetCurrentNavigationPathIndex();Возвращает индекс, по которому в данный момент находится агент в массиве Vector2[] пути навигации.
intGetCurrentNavigationResultNavigationPathQueryResult2D
public NavigationPathQueryResult2D GetCurrentNavigationResult();Возвращает результат запроса пути, по которому в данный момент следует агент.
NavigationPathQueryResult2DGetDebugEnabledbool
public bool GetDebugEnabled();boolGetDebugPathCustomColorColor
public Color GetDebugPathCustomColor();ColorGetDebugPathCustomLineWidthfloat
public float GetDebugPathCustomLineWidth();floatGetDebugPathCustomPointSizefloat
public float GetDebugPathCustomPointSize();floatGetDebugUseCustombool
public bool GetDebugUseCustom();boolGetFinalPositionVector2
public Vector2 GetFinalPosition();Обновляет навигацию и возвращает конец текущего пути, который может отличаться от исходной цели.
Vector2Последняя точка пути; Vector2.Zero при пустом результате. Нулевой вектор сам по себе не является надёжным тестом существования маршрута.
GetMaxNeighborsint
public int GetMaxNeighbors();intGetMaxSpeedfloat
public float GetMaxSpeed();floatGetNavigationLayerValuebool
public bool GetNavigationLayerValue(int layerNumber);Возвращает, включен ли указанный слой битовой маски NavigationAgent2D.NavigationLayers, учитывая layer_number от 1 до 32.
| Имя | Тип | По умолчанию |
|---|---|---|
layerNumber | int | — |
boolGetNavigationLayersuint
public uint GetNavigationLayers();Читает маску запросов агента. Она не описывает размер тела или радиус избегания.
uintТекущая маска NavigationLayers; 0 не допускает ни одного слоя для нового пути.
GetNavigationMapRid
public Rid GetNavigationMap();Возвращает явную карту агента, а без неё — карту мира его корректного родителя. Локально назначенная карта Entity может обновиться раньше серверной очереди.
RidRID используемой карты; при отсутствии назначенной карты и подходящего родителя может быть нулевым.
GetNeighborDistancefloat
public float GetNeighborDistance();floatGetNextPathPositionVector2
public Vector2 GetNextPathPosition();Обновляет состояние агента и возвращает следующую точку. Используйте её в цикле физики для собственного движения родителя; после завершения маршрута остановите следование.
Vector2Глобальная точка пути; при пустом пути и корректном родителе возвращает его позицию, а не отдельный код ошибки.
GetPathDesiredDistancefloat
public float GetPathDesiredDistance();floatGetPathLengthfloat
public float GetPathLength();Возвращает длину текущего вычисленного пути. Возвращаемое значение — 0.0, если путь всё ещё вычисляется или вычисление ещё не было запрошено.
floatGetPathMaxDistancefloat
public float GetPathMaxDistance();floatGetPathMetadataFlagsNavigationPathQueryParameters2D.PathMetadataFlags
public NavigationPathQueryParameters2D.PathMetadataFlags GetPathMetadataFlags();NavigationPathQueryParameters2D.PathMetadataFlagsGetPathPostprocessingNavigationPathQueryParameters2D.PathPostProcessing
public NavigationPathQueryParameters2D.PathPostProcessing GetPathPostprocessing();NavigationPathQueryParameters2D.PathPostProcessingGetPathReturnMaxLengthfloat
public float GetPathReturnMaxLength();floatGetPathReturnMaxRadiusfloat
public float GetPathReturnMaxRadius();floatGetPathSearchMaxDistancefloat
public float GetPathSearchMaxDistance();floatGetPathSearchMaxPolygonsint
public int GetPathSearchMaxPolygons();intGetPathfindingAlgorithmNavigationPathQueryParameters2D.PathfindingAlgorithmEnum
public NavigationPathQueryParameters2D.PathfindingAlgorithmEnum GetPathfindingAlgorithm();NavigationPathQueryParameters2D.PathfindingAlgorithmEnumGetRadiusfloat
public float GetRadius();floatGetRidRid
public Rid GetRid();Возвращает Rid этого агента на NavigationServer2D.
RidGetSimplifyEpsilonfloat
public float GetSimplifyEpsilon();floatGetSimplifyPathbool
public bool GetSimplifyPath();boolGetTargetDesiredDistancefloat
public float GetTargetDesiredDistance();floatGetTargetPositionVector2
public Vector2 GetTargetPosition();Vector2GetTimeHorizonAgentsfloat
public float GetTimeHorizonAgents();floatGetTimeHorizonObstaclesfloat
public float GetTimeHorizonObstacles();floatGetVelocityVector2
public Vector2 GetVelocity();Vector2IsNavigationFinishedbool
public bool IsNavigationFinished();Обновляет состояние навигации и сообщает о завершении текущего маршрута. Частичный путь тоже может завершиться: проверяйте IsTargetReached отдельно.
booltrue для завершённого маршрута; это не доказательство достижения исходной цели.
IsTargetReachablebool
public bool IsTargetReachable();Обновляет навигацию и сравнивает найденный конец с целью по TargetDesiredDistance. Проверяйте наличие текущего пути; метод не гарантирует прохождение физического тела сквозь реальный уровень.
boolРезультат сравнения конца текущего маршрута с целью. Для проверенной цели за пределами карты возвращает false.
IsTargetReachedbool
public bool IsTargetReached();Читает сохранённый признак достижения цели с допуском TargetDesiredDistance. Признак обновляется логикой следования пути; это не прямой физический тест доступности.
booltrue, если агент отметил достижение исходной цели; завершение частичного пути может оставить false.
SetAvoidanceEnabledvoid
public void SetAvoidanceEnabled(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetAvoidanceLayerValuevoid
public void SetAvoidanceLayerValue(int layerNumber, bool value);На основе value включает или отключает указанный слой в битовой маске NavigationAgent2D.AvoidanceLayers, учитывая layer_number от 1 до 32.
| Имя | Тип | По умолчанию |
|---|---|---|
layerNumber | int | — |
value | bool | — |
SetAvoidanceLayersvoid
public void SetAvoidanceLayers(uint layers);| Имя | Тип | По умолчанию |
|---|---|---|
layers | uint | — |
SetAvoidanceMaskvoid
public void SetAvoidanceMask(uint mask);| Имя | Тип | По умолчанию |
|---|---|---|
mask | uint | — |
SetAvoidanceMaskValuevoid
public void SetAvoidanceMaskValue(int maskNumber, bool value);На основе value включает или отключает указанную маску в битовой маске NavigationAgent2D.AvoidanceMask, учитывая mask_number от 1 до 32.
| Имя | Тип | По умолчанию |
|---|---|---|
maskNumber | int | — |
value | bool | — |
SetAvoidancePriorityvoid
public void SetAvoidancePriority(float priority);| Имя | Тип | По умолчанию |
|---|---|---|
priority | float | — |
SetDebugEnabledvoid
public void SetDebugEnabled(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetDebugPathCustomColorvoid
public void SetDebugPathCustomColor(Color color);| Имя | Тип | По умолчанию |
|---|---|---|
color | Color | — |
SetDebugPathCustomLineWidthvoid
public void SetDebugPathCustomLineWidth(float lineWidth);| Имя | Тип | По умолчанию |
|---|---|---|
lineWidth | float | — |
SetDebugPathCustomPointSizevoid
public void SetDebugPathCustomPointSize(float pointSize);| Имя | Тип | По умолчанию |
|---|---|---|
pointSize | float | — |
SetDebugUseCustomvoid
public void SetDebugUseCustom(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetMaxNeighborsvoid
public void SetMaxNeighbors(int maxNeighbors);| Имя | Тип | По умолчанию |
|---|---|---|
maxNeighbors | int | — |
SetMaxSpeedvoid
public void SetMaxSpeed(float maxSpeed);| Имя | Тип | По умолчанию |
|---|---|---|
maxSpeed | float | — |
SetNavigationLayerValuevoid
public void SetNavigationLayerValue(int layerNumber, bool value);На основе value включает или отключает указанный слой в битовой маске NavigationAgent2D.NavigationLayers, учитывая layer_number от 1 до 32.
| Имя | Тип | По умолчанию |
|---|---|---|
layerNumber | int | — |
value | bool | — |
SetNavigationLayersvoid
public void SetNavigationLayers(uint navigationLayers);Маска поверхностей и связей для маршрута агента. Любой общий бит допускает соответствующий регион; это не условие наличия всех ключей. Изменение при активной цели запрашивает перестроение пути, что проверено переключением 1 → 0 → 1.
| Имя | Тип | По умолчанию |
|---|---|---|
navigationLayers | uint | — |
navigationLayersМаска uint. Для публичных комнат на слое 1 и служебного прохода на слое 2 нужна маска 3; только бит прохода не допускает комнаты.
SetNavigationMapvoid
public void SetNavigationMap(Rid navigationMap);Назначает карту для запросов Entity агента и отправляет смену карты его серверному агенту. При активной цели сбрасывает текущий результат для нового поиска. Это не переключатель только геометрии: учитывайте изоляцию избегания по картам.
| Имя | Тип | По умолчанию |
|---|---|---|
navigationMap | Rid | — |
navigationMapRID живой карты под нужный тип навигации. После смены дождитесь серверного обновления; не используйте освобождённую карту.
SetNeighborDistancevoid
public void SetNeighborDistance(float neighborDistance);| Имя | Тип | По умолчанию |
|---|---|---|
neighborDistance | float | — |
SetPathDesiredDistancevoid
public void SetPathDesiredDistance(float desiredDistance);| Имя | Тип | По умолчанию |
|---|---|---|
desiredDistance | float | — |
SetPathMaxDistancevoid
public void SetPathMaxDistance(float maxSpeed);| Имя | Тип | По умолчанию |
|---|---|---|
maxSpeed | float | — |
SetPathMetadataFlagsvoid
public void SetPathMetadataFlags(NavigationPathQueryParameters2D.PathMetadataFlags flags);| Имя | Тип | По умолчанию |
|---|---|---|
flags | NavigationPathQueryParameters2D.PathMetadataFlags | — |
SetPathPostprocessingvoid
public void SetPathPostprocessing(NavigationPathQueryParameters2D.PathPostProcessing pathPostprocessing);| Имя | Тип | По умолчанию |
|---|---|---|
pathPostprocessing | NavigationPathQueryParameters2D.PathPostProcessing | — |
SetPathReturnMaxLengthvoid
public void SetPathReturnMaxLength(float length);| Имя | Тип | По умолчанию |
|---|---|---|
length | float | — |
SetPathReturnMaxRadiusvoid
public void SetPathReturnMaxRadius(float radius);| Имя | Тип | По умолчанию |
|---|---|---|
radius | float | — |
SetPathSearchMaxDistancevoid
public void SetPathSearchMaxDistance(float distance);| Имя | Тип | По умолчанию |
|---|---|---|
distance | float | — |
SetPathSearchMaxPolygonsvoid
public void SetPathSearchMaxPolygons(int maxPolygons);| Имя | Тип | По умолчанию |
|---|---|---|
maxPolygons | int | — |
SetPathfindingAlgorithmvoid
public void SetPathfindingAlgorithm(NavigationPathQueryParameters2D.PathfindingAlgorithmEnum pathfindingAlgorithm);| Имя | Тип | По умолчанию |
|---|---|---|
pathfindingAlgorithm | NavigationPathQueryParameters2D.PathfindingAlgorithmEnum | — |
SetRadiusvoid
public void SetRadius(float radius);| Имя | Тип | По умолчанию |
|---|---|---|
radius | float | — |
SetSimplifyEpsilonvoid
public void SetSimplifyEpsilon(float epsilon);| Имя | Тип | По умолчанию |
|---|---|---|
epsilon | float | — |
SetSimplifyPathvoid
public void SetSimplifyPath(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetTargetDesiredDistancevoid
public void SetTargetDesiredDistance(float desiredDistance);| Имя | Тип | По умолчанию |
|---|---|---|
desiredDistance | float | — |
SetTargetPositionvoid
public void SetTargetPosition(Vector2 position);| Имя | Тип | По умолчанию |
|---|---|---|
position | Vector2 | — |
SetTimeHorizonAgentsvoid
public void SetTimeHorizonAgents(float timeHorizon);| Имя | Тип | По умолчанию |
|---|---|---|
timeHorizon | float | — |
SetTimeHorizonObstaclesvoid
public void SetTimeHorizonObstacles(float timeHorizon);| Имя | Тип | По умолчанию |
|---|---|---|
timeHorizon | float | — |
SetVelocityvoid
public void SetVelocity(Vector2 velocity);| Имя | Тип | По умолчанию |
|---|---|---|
velocity | Vector2 | — |
SetVelocityForcedvoid
public void SetVelocityForced(Vector2 velocity);Заменяет внутреннюю скорость в моделировании избегания столкновений на NavigationAgent2D.Velocity. Когда агент телепортируется в новое положение, эта функция должна использоваться в том же кадре. При частом вызове эта функция может привести к застреванию агентов.
| Имя | Тип | По умолчанию |
|---|---|---|
velocity | Vector2 | — |
Сигналы и события6
LinkReachedСобытие
public event NavigationAgent2D.LinkReachedEventHandler LinkReached;Сигнализирует, что агент достиг навигационной ссылки (Link). Выдается, когда агент перемещается в пределах NavigationAgent2D.PathDesiredDistance от следующей позиции пути, когда эта позиция является навигационной ссылкой.
Словарь сведений может содержать следующие ключи в зависимости от значения NavigationAgent2D.PathMetadataFlags:
position: начальная позиция достигнутой ссылки.type: всегдаNavigationPathQueryResult2D.PathSegmentType.Link.rid:Ridссылки.owner: объект, управляющий ссылкой (обычноNavigationLink2D).link_entry_position: Если доступенownerи владелец —NavigationLink2D, он будет содержать глобальную позицию точки ссылки, в которую входит агент.link_exit_position: Если доступенownerи владелец —NavigationLink2D, он будет содержать глобальную позицию точки ссылки, из которой выходит агент.
| Имя | Тип | По умолчанию |
|---|---|---|
details | Reckfell.Collections.Dictionary | — |
NavigationFinishedСобытие
public event Action NavigationFinished;Сигнализирует о том, что навигация агента завершена. Если цель достижима, навигация заканчивается, когда цель достигнута. Если цель недостижима, навигация заканчивается, когда достигнута последняя точка маршрута. Этот сигнал выдается только один раз на загруженный путь.
Этот сигнал будет выдан сразу после NavigationAgent2D.TargetReached, когда цель достижима.
PathChangedСобытие
public event Action PathChanged;Выдается, когда агенту необходимо обновить загруженный путь:
- потому что путь ранее был пуст.
- потому что карта навигации изменилась.
- потому что агент оттолкнулся от текущего сегмента пути дальше, чем
NavigationAgent2D.PathMaxDistance.
TargetReachedСобытие
public event Action TargetReached;Сигнализирует о том, что агент достиг цели, т. е. агент переместился в пределах NavigationAgent2D.TargetDesiredDistance от NavigationAgent2D.TargetPosition. Этот сигнал посылается только один раз на загруженный путь.
Этот сигнал будет посылаться непосредственно перед NavigationAgent2D.NavigationFinished, когда цель достижима.
Не всегда возможно достичь цели, но всегда должно быть возможно достичь конечной позиции. См. NavigationAgent2D.GetFinalPosition.
VelocityComputedСобытие
public event NavigationAgent2D.VelocityComputedEventHandler VelocityComputed;Уведомляет, когда вычисляется скорость избегания столкновений. Выпускается каждое обновление, пока NavigationAgent2D.AvoidanceEnabled имеет значение true и у агента есть навигационная карта.
| Имя | Тип | По умолчанию |
|---|---|---|
safeVelocity | Vector2 | — |
WaypointReachedСобытие
public event NavigationAgent2D.WaypointReachedEventHandler WaypointReached;Сигнализирует о том, что агент достиг путевой точки. Выдается, когда агент перемещается в пределах NavigationAgent2D.PathDesiredDistance от следующей позиции пути.
Словарь сведений может содержать следующие ключи в зависимости от значения NavigationAgent2D.PathMetadataFlags:
position: позиция путевой точки, которая была достигнута.type: тип навигационного примитива (регион или ссылка), который содержит эту путевую точку.rid:Ridсодержащего навигационного примитива (регион или ссылка).owner: объект, который управляет содержащим навигационным примитивом (регион или ссылка).
| Имя | Тип | По умолчанию |
|---|---|---|
details | Reckfell.Collections.Dictionary | — |