reckfellENGINE

NavigationAgent2D

2D-агент, используемый для поиска пути к нужной позиции с обходом препятствий.

На этой странице
class NavigationAgent2DReckfellSharpНаследует Entity

2D-агент, используемый для поиска пути к нужной позиции с обходом препятствий.

2D агент, используемый для поиска пути к заданной позиции с избеганием статических и динамических препятствий. Этот расчёт может использоваться родительским узлом для динамического перемещения по пути. Для корректной работы требуются навигационные данные. Динамические препятствия обходят с помощью функции предотвращения столкновений RVO. Избегание вычисляется до физических условий, поэтому информацию о поиске пути можно безопасно использовать на этапе физических условий. Примечание: После установки свойства NavigationAgent2D.TargetPosition метод NavigationAgent2D.GetNextPathPosition необходимо использовать один раз в каждом кадре физической модели для обновления внутренней логики пути навигационного агента. Возвращаемая им позиция вектора должна использоваться в качестве следующей позиции движения для родительского узла агента. Примечание: Некоторые методы этого класса, такие как NavigationAgent2D.GetNextPathPosition, могут инициировать новый расчёт пути. Вызов этих методов в обратном вызове сигнала агента, например NavigationAgent2D.WaypointReached, может привести к бесконечной рекурсии. Рекомендуется вызывать эти методы на этапе физики или, в качестве альтернативы, откладывать их вызов до конца кадра (см. ReckfellObject.CallDeferred или ReckfellObject.ConnectFlags.Deferred).

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

NavigationAgent2DКонструктор
# NavigationAgent2D
C#
public NavigationAgent2D();

Свойства30

AvoidanceEnabledСвойство
# AvoidanceEnabled
C#
public bool AvoidanceEnabled { get; set; }

Включает расчёт избегания. Передавайте желаемую Velocity и применяйте скорость из VelocityComputed к телу. Сам флаг не выполняет движение и не гарантирует обход любых препятствий.

AvoidanceLayersСвойство
# AvoidanceLayers
C#
public uint AvoidanceLayers { get; set; }

Ударное поле, определяющее уровни избегания для этого навигационного агента. NavigationAgent2D.AvoidanceMask избегает этого агента.

AvoidanceMaskСвойство
# AvoidanceMask
C#
public uint AvoidanceMask { get; set; }

Ударное поле, определяющее, какие другие агенты избегают и препятствия этот Навигационный Агент избежит, когда немного совпадет, по крайней мере, один из их NavigationAgent2D.AvoidanceLayers.

AvoidancePriorityСвойство
# AvoidancePriority
C#
public float AvoidancePriority { get; set; }

Агент не корректирует скорость для других агентов, которые соответствуют NavigationAgent2D.AvoidanceMask, но имеют более низкий NavigationAgent2D.AvoidancePriority. Это, в свою очередь, заставляет других агентов с более низким приоритетом корректировать свои скорости еще больше, чтобы избежать столкновения с этим агентом.

DebugEnabledСвойство
# DebugEnabled
C#
public bool DebugEnabled { get; set; }

Если true, отображаются визуальные отладочные данные для этого агента.

DebugPathCustomColorСвойство
# DebugPathCustomColor
C#
public Color DebugPathCustomColor { get; set; }

Если NavigationAgent2D.DebugUseCustom равен true, то этот цвет используется для этого агента вместо глобального цвета.

DebugPathCustomLineWidthСвойство
# DebugPathCustomLineWidth
C#
public float DebugPathCustomLineWidth { get; set; }

Если NavigationAgent2D.DebugUseCustom равен true, то эта ширина линии используется для отрисовки путей для этого агента вместо глобальной ширины линии.

DebugPathCustomPointSizeСвойство
# DebugPathCustomPointSize
C#
public float DebugPathCustomPointSize { get; set; }

Если NavigationAgent2D.DebugUseCustom равен true, то для рендеринга точек пути этого агента, вместо глобального размера точки, используется этот растеризованный размер точки.

DebugUseCustomСвойство
# DebugUseCustom
C#
public bool DebugUseCustom { get; set; }

Если true, то вместо глобального цвета используется определенный NavigationAgent2D.DebugPathCustomColor для этого агента.

MaxNeighborsСвойство
# MaxNeighbors
C#
public int MaxNeighbors { get; set; }

Максимальное количество соседей, которых может учитывать агент.

MaxSpeedСвойство
# MaxSpeed
C#
public float MaxSpeed { get; set; }

Ограничение скорости расчёта избегания. Согласуйте с желаемой скоростью тела; изменение этого свойства не задаёт движение автоматически.

NavigationLayersСвойство
# NavigationLayers
C#
public uint NavigationLayers { get; set; }

Маска поверхностей и связей для маршрута агента. Любой общий бит допускает соответствующий регион; это не условие наличия всех ключей. Изменение при активной цели запрашивает перестроение пути, что проверено переключением 1 → 0 → 1.

NeighborDistanceСвойство
# NeighborDistance
C#
public float NeighborDistance { get; set; }

Расстояние для поиска других агентов.

PathDesiredDistanceСвойство
# PathDesiredDistance
C#
public float PathDesiredDistance { get; set; }

Допуск подхода к очередной точке пути в единицах карты. Подбирайте под скорость и шаг физики: слишком малый допуск может вызвать перескок и возврат к точке.

PathMaxDistanceСвойство
# PathMaxDistance
C#
public float PathMaxDistance { get; set; }

Максимальное расстояние, на которое агент может отойти от идеального пути до конечной позиции. Это может произойти из-за попыток избежать столкновений. При превышении максимального расстояния он пересчитывает идеальный путь.

PathMetadataFlagsСвойство
# PathMetadataFlags
C#
public NavigationPathQueryParameters2D.PathMetadataFlags PathMetadataFlags { get; set; }

Дополнительная информация для возврата по пути навигации.

PathPostprocessingСвойство
# PathPostprocessing
C#
public NavigationPathQueryParameters2D.PathPostProcessing PathPostprocessing { get; set; }

Постобработка пути, примененная к необработанному коридору пути, найденному NavigationAgent2D.PathfindingAlgorithm.

PathReturnMaxLengthСвойство
# PathReturnMaxLength
C#
public float PathReturnMaxLength { get; set; }

Максимально допустимая длина возвращаемого пути в мировых единицах. При превышении этой длины путь будет обрезан.

PathReturnMaxRadiusСвойство
# PathReturnMaxRadius
C#
public float PathReturnMaxRadius { get; set; }

Максимально допустимый радиус возвращаемого пути от начала пути в мировых единицах. При превышении этого радиуса путь будет обрезан. По сравнению с NavigationAgent2D.PathReturnMaxLength, это позволяет агенту пройти значительно больше, если ему потребуется обойти угол. Примечание: При этом будет выполнено обрезание сферы с учётом только фактических точек пути навигационной сетки, при этом первая точка пути будет находиться в центре сферы.

PathSearchMaxDistanceСвойство
# PathSearchMaxDistance
C#
public float PathSearchMaxDistance { get; set; }

Максимальное расстояние, на которое может отдалиться искомый полигон от начального полигона, прежде чем поиск пути отменит поиск пути к целевому полигону (возможно, недостижимому или очень удалённому). В этом случае поиск пути сбрасывается и строит путь от начального полигона до полигона, который был найден ближайшим к целевой позиции. Значение 0 или ниже считается неограниченным. В случае неограниченного значения поиск пути будет искать все полигоны, соединённые с начальным полигоном, пока не будет найден целевой полигон или пока не будут исчерпаны все доступные варианты поиска полигонов.

PathSearchMaxPolygonsСвойство
# PathSearchMaxPolygons
C#
public int PathSearchMaxPolygons { get; set; }

Максимальное количество полигонов, которые будут просмотрены до того, как поиск пути отменит поиск пути к целевому полигону (возможно, недостижимому или очень удалённому). В этом случае поиск пути сбрасывается и строит путь от начального полигона до полигона, который был найден ближайшим к целевой позиции. Значение 0 или меньше считается неограниченным. В случае неограниченного поиска пути поиск пути будет искать все полигоны, соединённые с начальным полигоном, пока не будет найден целевой полигон или пока не будут исчерпаны все доступные варианты поиска полигонов.

PathfindingAlgorithmСвойство
# PathfindingAlgorithm
C#
public NavigationPathQueryParameters2D.PathfindingAlgorithmEnum PathfindingAlgorithm { get; set; }

Алгоритм поиска пути, используемый в запросе пути.

Радиус

RadiusСвойство
# Radius
C#
public float Radius { get; set; }

Радиус круга агента для избегания. Не меняет физический коллайдер и не перезапекает навигационный меш под другой размер персонажа.

SimplifyEpsilonСвойство
# SimplifyEpsilon
C#
public float SimplifyEpsilon { get; set; }

Упрощение пути в мировых единицах.

SimplifyPathСвойство
# SimplifyPath
C#
public bool SimplifyPath { get; set; }

Если true, будет возвращена упрощенная версия пути с удаленными менее критическими точками пути. Степень упрощения контролируется NavigationAgent2D.SimplifyEpsilon. Упрощение использует вариант алгоритма Ramer-Douglas-Peucker для прореживания точек кривой. Упрощение пути может быть полезно для смягчения различных проблем следования по пути, которые могут возникнуть с определенными типами агентов и поведением сценария. Например, «рулевое управление» или избегание в «открытых полях».

TargetDesiredDistanceСвойство
# TargetDesiredDistance
C#
public float TargetDesiredDistance { get; set; }

Допуск достижения исходной цели и сравнения конца найденного пути с целью. Большое значение может завершить маршрут раньше ожидаемого.

TargetPositionСвойство
# TargetPosition
C#
public Vector2 TargetPosition { get; set; }

Глобальная цель агента. Присваивание запрашивает новый маршрут; не задавайте ту же цель каждый кадр без необходимости. Агент не перемещает родителя автоматически.

TimeHorizonAgentsСвойство
# TimeHorizonAgents
C#
public float TimeHorizonAgents { get; set; }

Минимальное количество времени, в течение которого скорость этого агента, рассчитанная с помощью алгоритма предотвращения столкновения, безопасна по отношению к другим агентам. Чем больше число, тем быстрее агент будет реагировать на другие агенты, но меньше свободы в выборе скорости. Слишком высокое значение значительно замедляет движение агента. Должно быть положительным.

TimeHorizonObstaclesСвойство
# TimeHorizonObstacles
C#
public float TimeHorizonObstacles { get; set; }

Минимальное количество времени, в течение которого скорость этого агента, рассчитанная с помощью алгоритма предотвращения столкновения, безопасна с точки зрения статических препятствий. Чем больше число, тем быстрее агент будет реагировать на статические преграды, но меньше свободы в выборе скорости. Слишком высокое значение значительно замедляет движение агента. Должно быть положительным.

VelocityСвойство
# Velocity
C#
public Vector2 Velocity { get; set; }

Желаемая скорость для расчёта избегания, в единицах карты в секунду. Не умножайте её на delta при передаче затем в CharacterBody2D.MoveAndSlide. Итоговая скорость приходит через VelocityComputed.

Методы80

DistanceToTargetfloat
# DistanceToTarget
C#
public float DistanceToTarget();

Возвращает расстояние до целевой позиции, используя глобальную позицию агента. Пользователь должен установить NavigationAgent2D.TargetPosition, чтобы это было точным.

Возвращает float
GetAvoidanceEnabledbool
# GetAvoidanceEnabled
C#
public bool GetAvoidanceEnabled();
Возвращает bool
GetAvoidanceLayerValuebool
# GetAvoidanceLayerValue
C#
public bool GetAvoidanceLayerValue(int layerNumber);

Возвращается ли указанный слой NavigationAgent2D.AvoidanceLayers Включена битмаска, при условии a layer_number от 1 до 32 лет.

Параметры
ИмяТипПо умолчанию
layerNumberint—
Возвращает bool
GetAvoidanceLayersuint
# GetAvoidanceLayers
C#
public uint GetAvoidanceLayers();
Возвращает uint
GetAvoidanceMaskuint
# GetAvoidanceMask
C#
public uint GetAvoidanceMask();
Возвращает uint
GetAvoidanceMaskValuebool
# GetAvoidanceMaskValue
C#
public bool GetAvoidanceMaskValue(int maskNumber);

Возвращается ли указанная маска NavigationAgent2D.AvoidanceMask Включена битмаска, при условии a mask_number от 1 до 32 лет.

Параметры
ИмяТипПо умолчанию
maskNumberint—
Возвращает bool
GetAvoidancePriorityfloat
# GetAvoidancePriority
C#
public float GetAvoidancePriority();
Возвращает float
GetCurrentNavigationPathVector2[]
# GetCurrentNavigationPath
C#
public Vector2[] GetCurrentNavigationPath();

Читает текущий массив пути агента. Не перемещает тело; точки могут закончиться у доступной границы, а не у исходной цели.

Возвращает Vector2[]

Массив Vector2[] текущего результата; проверяйте Length перед обращением к первой или последней точке.

GetCurrentNavigationPathIndexint
# GetCurrentNavigationPathIndex
C#
public int GetCurrentNavigationPathIndex();

Возвращает индекс, по которому в данный момент находится агент в массиве Vector2[] пути навигации.

Возвращает int
GetCurrentNavigationResultNavigationPathQueryResult2D
# GetCurrentNavigationResult
C#
public NavigationPathQueryResult2D GetCurrentNavigationResult();

Возвращает результат запроса пути, по которому в данный момент следует агент.

Возвращает NavigationPathQueryResult2D
GetDebugEnabledbool
# GetDebugEnabled
C#
public bool GetDebugEnabled();
Возвращает bool
GetDebugPathCustomColorColor
# GetDebugPathCustomColor
C#
public Color GetDebugPathCustomColor();
Возвращает Color
GetDebugPathCustomLineWidthfloat
# GetDebugPathCustomLineWidth
C#
public float GetDebugPathCustomLineWidth();
Возвращает float
GetDebugPathCustomPointSizefloat
# GetDebugPathCustomPointSize
C#
public float GetDebugPathCustomPointSize();
Возвращает float
GetDebugUseCustombool
# GetDebugUseCustom
C#
public bool GetDebugUseCustom();
Возвращает bool
GetFinalPositionVector2
# GetFinalPosition
C#
public Vector2 GetFinalPosition();

Обновляет навигацию и возвращает конец текущего пути, который может отличаться от исходной цели.

Возвращает Vector2

Последняя точка пути; Vector2.Zero при пустом результате. Нулевой вектор сам по себе не является надёжным тестом существования маршрута.

GetMaxNeighborsint
# GetMaxNeighbors
C#
public int GetMaxNeighbors();
Возвращает int
GetMaxSpeedfloat
# GetMaxSpeed
C#
public float GetMaxSpeed();
Возвращает float
GetNavigationLayerValuebool
# GetNavigationLayerValue
C#
public bool GetNavigationLayerValue(int layerNumber);

Возвращает, включен ли указанный слой битовой маски NavigationAgent2D.NavigationLayers, учитывая layer_number от 1 до 32.

Параметры
ИмяТипПо умолчанию
layerNumberint—
Возвращает bool
GetNavigationLayersuint
# GetNavigationLayers
C#
public uint GetNavigationLayers();

Читает маску запросов агента. Она не описывает размер тела или радиус избегания.

Возвращает uint

Текущая маска NavigationLayers; 0 не допускает ни одного слоя для нового пути.

GetNavigationMapRid
# GetNavigationMap
C#
public Rid GetNavigationMap();

Возвращает явную карту агента, а без неё — карту мира его корректного родителя. Локально назначенная карта Entity может обновиться раньше серверной очереди.

Возвращает Rid

RID используемой карты; при отсутствии назначенной карты и подходящего родителя может быть нулевым.

GetNeighborDistancefloat
# GetNeighborDistance
C#
public float GetNeighborDistance();
Возвращает float
GetNextPathPositionVector2
# GetNextPathPosition
C#
public Vector2 GetNextPathPosition();

Обновляет состояние агента и возвращает следующую точку. Используйте её в цикле физики для собственного движения родителя; после завершения маршрута остановите следование.

Возвращает Vector2

Глобальная точка пути; при пустом пути и корректном родителе возвращает его позицию, а не отдельный код ошибки.

GetPathDesiredDistancefloat
# GetPathDesiredDistance
C#
public float GetPathDesiredDistance();
Возвращает float
GetPathLengthfloat
# GetPathLength
C#
public float GetPathLength();

Возвращает длину текущего вычисленного пути. Возвращаемое значение — 0.0, если путь всё ещё вычисляется или вычисление ещё не было запрошено.

Возвращает float
GetPathMaxDistancefloat
# GetPathMaxDistance
C#
public float GetPathMaxDistance();
Возвращает float
GetPathMetadataFlagsNavigationPathQueryParameters2D.PathMetadataFlags
# GetPathMetadataFlags
C#
public NavigationPathQueryParameters2D.PathMetadataFlags GetPathMetadataFlags();
Возвращает NavigationPathQueryParameters2D.PathMetadataFlags
GetPathPostprocessingNavigationPathQueryParameters2D.PathPostProcessing
# GetPathPostprocessing
C#
public NavigationPathQueryParameters2D.PathPostProcessing GetPathPostprocessing();
Возвращает NavigationPathQueryParameters2D.PathPostProcessing
GetPathReturnMaxLengthfloat
# GetPathReturnMaxLength
C#
public float GetPathReturnMaxLength();
Возвращает float
GetPathReturnMaxRadiusfloat
# GetPathReturnMaxRadius
C#
public float GetPathReturnMaxRadius();
Возвращает float
GetPathSearchMaxDistancefloat
# GetPathSearchMaxDistance
C#
public float GetPathSearchMaxDistance();
Возвращает float
GetPathSearchMaxPolygonsint
# GetPathSearchMaxPolygons
C#
public int GetPathSearchMaxPolygons();
Возвращает int
GetPathfindingAlgorithmNavigationPathQueryParameters2D.PathfindingAlgorithmEnum
# GetPathfindingAlgorithm
C#
public NavigationPathQueryParameters2D.PathfindingAlgorithmEnum GetPathfindingAlgorithm();
Возвращает NavigationPathQueryParameters2D.PathfindingAlgorithmEnum
GetRadiusfloat
# GetRadius
C#
public float GetRadius();
Возвращает float
GetRidRid
# GetRid
C#
public Rid GetRid();

Возвращает Rid этого агента на NavigationServer2D.

Возвращает Rid
GetSimplifyEpsilonfloat
# GetSimplifyEpsilon
C#
public float GetSimplifyEpsilon();
Возвращает float
GetSimplifyPathbool
# GetSimplifyPath
C#
public bool GetSimplifyPath();
Возвращает bool
GetTargetDesiredDistancefloat
# GetTargetDesiredDistance
C#
public float GetTargetDesiredDistance();
Возвращает float
GetTargetPositionVector2
# GetTargetPosition
C#
public Vector2 GetTargetPosition();
Возвращает Vector2
GetTimeHorizonAgentsfloat
# GetTimeHorizonAgents
C#
public float GetTimeHorizonAgents();
Возвращает float
GetTimeHorizonObstaclesfloat
# GetTimeHorizonObstacles
C#
public float GetTimeHorizonObstacles();
Возвращает float
GetVelocityVector2
# GetVelocity
C#
public Vector2 GetVelocity();
Возвращает Vector2
IsNavigationFinishedbool
# IsNavigationFinished
C#
public bool IsNavigationFinished();

Обновляет состояние навигации и сообщает о завершении текущего маршрута. Частичный путь тоже может завершиться: проверяйте IsTargetReached отдельно.

Возвращает bool

true для завершённого маршрута; это не доказательство достижения исходной цели.

IsTargetReachablebool
# IsTargetReachable
C#
public bool IsTargetReachable();

Обновляет навигацию и сравнивает найденный конец с целью по TargetDesiredDistance. Проверяйте наличие текущего пути; метод не гарантирует прохождение физического тела сквозь реальный уровень.

Возвращает bool

Результат сравнения конца текущего маршрута с целью. Для проверенной цели за пределами карты возвращает false.

IsTargetReachedbool
# IsTargetReached
C#
public bool IsTargetReached();

Читает сохранённый признак достижения цели с допуском TargetDesiredDistance. Признак обновляется логикой следования пути; это не прямой физический тест доступности.

Возвращает bool

true, если агент отметил достижение исходной цели; завершение частичного пути может оставить false.

SetAvoidanceEnabledvoid
# SetAvoidanceEnabled
C#
public void SetAvoidanceEnabled(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetAvoidanceLayerValuevoid
# SetAvoidanceLayerValue
C#
public void SetAvoidanceLayerValue(int layerNumber, bool value);

На основе value включает или отключает указанный слой в битовой маске NavigationAgent2D.AvoidanceLayers, учитывая layer_number от 1 до 32.

Параметры
ИмяТипПо умолчанию
layerNumberint—
valuebool—
SetAvoidanceLayersvoid
# SetAvoidanceLayers
C#
public void SetAvoidanceLayers(uint layers);
Параметры
ИмяТипПо умолчанию
layersuint—
SetAvoidanceMaskvoid
# SetAvoidanceMask
C#
public void SetAvoidanceMask(uint mask);
Параметры
ИмяТипПо умолчанию
maskuint—
SetAvoidanceMaskValuevoid
# SetAvoidanceMaskValue
C#
public void SetAvoidanceMaskValue(int maskNumber, bool value);

На основе value включает или отключает указанную маску в битовой маске NavigationAgent2D.AvoidanceMask, учитывая mask_number от 1 до 32.

Параметры
ИмяТипПо умолчанию
maskNumberint—
valuebool—
SetAvoidancePriorityvoid
# SetAvoidancePriority
C#
public void SetAvoidancePriority(float priority);
Параметры
ИмяТипПо умолчанию
priorityfloat—
SetDebugEnabledvoid
# SetDebugEnabled
C#
public void SetDebugEnabled(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetDebugPathCustomColorvoid
# SetDebugPathCustomColor
C#
public void SetDebugPathCustomColor(Color color);
Параметры
ИмяТипПо умолчанию
colorColor—
SetDebugPathCustomLineWidthvoid
# SetDebugPathCustomLineWidth
C#
public void SetDebugPathCustomLineWidth(float lineWidth);
Параметры
ИмяТипПо умолчанию
lineWidthfloat—
SetDebugPathCustomPointSizevoid
# SetDebugPathCustomPointSize
C#
public void SetDebugPathCustomPointSize(float pointSize);
Параметры
ИмяТипПо умолчанию
pointSizefloat—
SetDebugUseCustomvoid
# SetDebugUseCustom
C#
public void SetDebugUseCustom(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetMaxNeighborsvoid
# SetMaxNeighbors
C#
public void SetMaxNeighbors(int maxNeighbors);
Параметры
ИмяТипПо умолчанию
maxNeighborsint—
SetMaxSpeedvoid
# SetMaxSpeed
C#
public void SetMaxSpeed(float maxSpeed);
Параметры
ИмяТипПо умолчанию
maxSpeedfloat—
SetNavigationLayerValuevoid
# SetNavigationLayerValue
C#
public void SetNavigationLayerValue(int layerNumber, bool value);

На основе value включает или отключает указанный слой в битовой маске NavigationAgent2D.NavigationLayers, учитывая layer_number от 1 до 32.

Параметры
ИмяТипПо умолчанию
layerNumberint—
valuebool—
SetNavigationLayersvoid
# SetNavigationLayers
C#
public void SetNavigationLayers(uint navigationLayers);

Маска поверхностей и связей для маршрута агента. Любой общий бит допускает соответствующий регион; это не условие наличия всех ключей. Изменение при активной цели запрашивает перестроение пути, что проверено переключением 1 → 0 → 1.

Параметры
ИмяТипПо умолчанию
navigationLayersuint—
navigationLayers

Маска uint. Для публичных комнат на слое 1 и служебного прохода на слое 2 нужна маска 3; только бит прохода не допускает комнаты.

SetNavigationMapvoid
# SetNavigationMap
C#
public void SetNavigationMap(Rid navigationMap);

Назначает карту для запросов Entity агента и отправляет смену карты его серверному агенту. При активной цели сбрасывает текущий результат для нового поиска. Это не переключатель только геометрии: учитывайте изоляцию избегания по картам.

Параметры
ИмяТипПо умолчанию
navigationMapRid—
navigationMap

RID живой карты под нужный тип навигации. После смены дождитесь серверного обновления; не используйте освобождённую карту.

SetNeighborDistancevoid
# SetNeighborDistance
C#
public void SetNeighborDistance(float neighborDistance);
Параметры
ИмяТипПо умолчанию
neighborDistancefloat—
SetPathDesiredDistancevoid
# SetPathDesiredDistance
C#
public void SetPathDesiredDistance(float desiredDistance);
Параметры
ИмяТипПо умолчанию
desiredDistancefloat—
SetPathMaxDistancevoid
# SetPathMaxDistance
C#
public void SetPathMaxDistance(float maxSpeed);
Параметры
ИмяТипПо умолчанию
maxSpeedfloat—
SetPathMetadataFlagsvoid
# SetPathMetadataFlags
C#
public void SetPathMetadataFlags(NavigationPathQueryParameters2D.PathMetadataFlags flags);
Параметры
ИмяТипПо умолчанию
flagsNavigationPathQueryParameters2D.PathMetadataFlags—
SetPathPostprocessingvoid
# SetPathPostprocessing
C#
public void SetPathPostprocessing(NavigationPathQueryParameters2D.PathPostProcessing pathPostprocessing);
Параметры
ИмяТипПо умолчанию
pathPostprocessingNavigationPathQueryParameters2D.PathPostProcessing—
SetPathReturnMaxLengthvoid
# SetPathReturnMaxLength
C#
public void SetPathReturnMaxLength(float length);
Параметры
ИмяТипПо умолчанию
lengthfloat—
SetPathReturnMaxRadiusvoid
# SetPathReturnMaxRadius
C#
public void SetPathReturnMaxRadius(float radius);
Параметры
ИмяТипПо умолчанию
radiusfloat—
SetPathSearchMaxDistancevoid
# SetPathSearchMaxDistance
C#
public void SetPathSearchMaxDistance(float distance);
Параметры
ИмяТипПо умолчанию
distancefloat—
SetPathSearchMaxPolygonsvoid
# SetPathSearchMaxPolygons
C#
public void SetPathSearchMaxPolygons(int maxPolygons);
Параметры
ИмяТипПо умолчанию
maxPolygonsint—
SetPathfindingAlgorithmvoid
# SetPathfindingAlgorithm
C#
public void SetPathfindingAlgorithm(NavigationPathQueryParameters2D.PathfindingAlgorithmEnum pathfindingAlgorithm);
Параметры
ИмяТипПо умолчанию
pathfindingAlgorithmNavigationPathQueryParameters2D.PathfindingAlgorithmEnum—
SetRadiusvoid
# SetRadius
C#
public void SetRadius(float radius);
Параметры
ИмяТипПо умолчанию
radiusfloat—
SetSimplifyEpsilonvoid
# SetSimplifyEpsilon
C#
public void SetSimplifyEpsilon(float epsilon);
Параметры
ИмяТипПо умолчанию
epsilonfloat—
SetSimplifyPathvoid
# SetSimplifyPath
C#
public void SetSimplifyPath(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetTargetDesiredDistancevoid
# SetTargetDesiredDistance
C#
public void SetTargetDesiredDistance(float desiredDistance);
Параметры
ИмяТипПо умолчанию
desiredDistancefloat—
SetTargetPositionvoid
# SetTargetPosition
C#
public void SetTargetPosition(Vector2 position);
Параметры
ИмяТипПо умолчанию
positionVector2—
SetTimeHorizonAgentsvoid
# SetTimeHorizonAgents
C#
public void SetTimeHorizonAgents(float timeHorizon);
Параметры
ИмяТипПо умолчанию
timeHorizonfloat—
SetTimeHorizonObstaclesvoid
# SetTimeHorizonObstacles
C#
public void SetTimeHorizonObstacles(float timeHorizon);
Параметры
ИмяТипПо умолчанию
timeHorizonfloat—
SetVelocityvoid
# SetVelocity
C#
public void SetVelocity(Vector2 velocity);
Параметры
ИмяТипПо умолчанию
velocityVector2—
SetVelocityForcedvoid
# SetVelocityForced
C#
public void SetVelocityForced(Vector2 velocity);

Заменяет внутреннюю скорость в моделировании избегания столкновений на NavigationAgent2D.Velocity. Когда агент телепортируется в новое положение, эта функция должна использоваться в том же кадре. При частом вызове эта функция может привести к застреванию агентов.

Параметры
ИмяТипПо умолчанию
velocityVector2—

Сигналы и события6

LinkReachedСобытие
# LinkReached
C#
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, он будет содержать глобальную позицию точки ссылки, из которой выходит агент.
Параметры обработчика
ИмяТипПо умолчанию
detailsReckfell.Collections.Dictionary—
NavigationFinishedСобытие
# NavigationFinished
C#
public event Action NavigationFinished;

Сигнализирует о том, что навигация агента завершена. Если цель достижима, навигация заканчивается, когда цель достигнута. Если цель недостижима, навигация заканчивается, когда достигнута последняя точка маршрута. Этот сигнал выдается только один раз на загруженный путь. Этот сигнал будет выдан сразу после NavigationAgent2D.TargetReached, когда цель достижима.

PathChangedСобытие
# PathChanged
C#
public event Action PathChanged;

Выдается, когда агенту необходимо обновить загруженный путь:

  • потому что путь ранее был пуст.
  • потому что карта навигации изменилась.
  • потому что агент оттолкнулся от текущего сегмента пути дальше, чем NavigationAgent2D.PathMaxDistance.
TargetReachedСобытие
# TargetReached
C#
public event Action TargetReached;

Сигнализирует о том, что агент достиг цели, т. е. агент переместился в пределах NavigationAgent2D.TargetDesiredDistance от NavigationAgent2D.TargetPosition. Этот сигнал посылается только один раз на загруженный путь. Этот сигнал будет посылаться непосредственно перед NavigationAgent2D.NavigationFinished, когда цель достижима. Не всегда возможно достичь цели, но всегда должно быть возможно достичь конечной позиции. См. NavigationAgent2D.GetFinalPosition.

VelocityComputedСобытие
# VelocityComputed
C#
public event NavigationAgent2D.VelocityComputedEventHandler VelocityComputed;

Уведомляет, когда вычисляется скорость избегания столкновений. Выпускается каждое обновление, пока NavigationAgent2D.AvoidanceEnabled имеет значение true и у агента есть навигационная карта.

Параметры обработчика
ИмяТипПо умолчанию
safeVelocityVector2—
WaypointReachedСобытие
# WaypointReached
C#
public event NavigationAgent2D.WaypointReachedEventHandler WaypointReached;

Сигнализирует о том, что агент достиг путевой точки. Выдается, когда агент перемещается в пределах NavigationAgent2D.PathDesiredDistance от следующей позиции пути. Словарь сведений может содержать следующие ключи в зависимости от значения NavigationAgent2D.PathMetadataFlags:

  • position: позиция путевой точки, которая была достигнута.
  • type: тип навигационного примитива (регион или ссылка), который содержит эту путевую точку.
  • rid: Rid содержащего навигационного примитива (регион или ссылка).
  • owner: объект, который управляет содержащим навигационным примитивом (регион или ссылка).
Параметры обработчика
ИмяТипПо умолчанию
detailsReckfell.Collections.Dictionary—
Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.