reckfellENGINE

NavigationAgent3D

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

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

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

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

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

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

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

Свойства33

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

Если true, агент регистрируется для обратного вызова избегания RVO на NavigationServer3D. Когда NavigationAgent3D.Velocity задано и обработка завершена, safe_velocity Vector3 принимается с сигнальным соединением на NavigationAgent3D.VelocityComputed. Обработка избегания со многими зарегистрированными агентами имеет значительные затраты производительности и должна быть включена только для агентов, которым это в данный момент требуется.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Высота агента избегания. Агенты будут игнорировать других агентов или препятствия, которые находятся выше или ниже их текущего положения + высота в 2D-избегании. Ничего не делает в 3D-избегании, которое использует только радиусные сферы.

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

Если true, и агент использует 2D-избегание, он запомнит заданную скорость оси Y и повторно применит ее после шага избегания. В то время как 2D-избегание не имеет оси Y и моделирует на плоской плоскости, эта настройка может помочь смягчить наиболее очевидное отсечение на неровной 3D-геометрии.

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

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

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

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

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

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

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

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

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

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

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

Смещение, вычитаемое по Y из точек, возвращаемых GetNextPathPosition и GetFinalPosition. В проверке значение 1 уменьшило высоту конечной точки на 1. Не меняет физический коллайдер и не перезапекает меш.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Радиус

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

Радиус агента избегания. Это «тело» агента избегания, а не начальный радиус маневра избегания (который контролируется NavigationAgent3D.NeighborDistance). Не влияет на обычный поиск пути. Чтобы изменить радиус поиска пути актера, запеките ресурсы NavigationMesh с другим свойством NavigationMesh.AgentRadius и используйте разные навигационные карты для каждого размера актера.

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

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

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

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

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

Допуск достижения исходной цели. Проверка использует расстояние в 3D: вертикальное смещение начала координат тела также важно.

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

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

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

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

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

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

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

Если true, агент вычисляет скорости избегания в 3D всенаправленно, например, для игр, которые происходят в воздухе, под водой или в космосе. Агенты, использующие 3D-избегание, избегают только других агентов, использующих 3D-избегание, и реагируют на препятствия избегания на основе радиуса. Они игнорируют любые препятствия на основе вершин. Если false, агент вычисляет скорости избегания в 2D вдоль осей x и z, игнорируя ось y. Агенты, использующие 2D-избегание, избегают только других агентов, использующих 2D-избегание, и реагируют на препятствия избегания на основе радиуса или препятствия избегания на основе вершин. Другие агенты, использующие 2D-избегание, которые находятся ниже или выше их текущего положения, включая NavigationAgent3D.Height, игнорируются.

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

Устанавливает новую желаемую скорость для агента. Симуляция избегания попытается достичь этой скорости, если это возможно, но изменит ее, чтобы избежать столкновения с другими агентами и препятствиями. Когда агент телепортируется в новое положение, используйте также NavigationAgent3D.SetVelocityForced для сброса внутренней скорости симуляции.

Методы86

DistanceToTargetfloat
# DistanceToTarget
C#
public float DistanceToTarget();

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

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

Возвращается ли указанный слой NavigationAgent3D.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);

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

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

Читает текущие точки пути, а не двигает родителя. Для готового физического примера геометрия карты и пола проверяются отдельно.

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

Vector3[] текущего результата. Перед доступом к концам проверьте Length.

GetCurrentNavigationPathIndexint
# GetCurrentNavigationPathIndex
C#
public int GetCurrentNavigationPathIndex();

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

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

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

Возвращает NavigationPathQueryResult3D
GetDebugEnabledbool
# GetDebugEnabled
C#
public bool GetDebugEnabled();
Возвращает bool
GetDebugPathCustomColorColor
# GetDebugPathCustomColor
C#
public Color GetDebugPathCustomColor();
Возвращает Color
GetDebugPathCustomPointSizefloat
# GetDebugPathCustomPointSize
C#
public float GetDebugPathCustomPointSize();
Возвращает float
GetDebugUseCustombool
# GetDebugUseCustom
C#
public bool GetDebugUseCustom();
Возвращает bool
GetFinalPositionVector3
# GetFinalPosition
C#
public Vector3 GetFinalPosition();

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

Возвращает Vector3

Последняя точка с вычетом PathHeightOffset по Y; Vector3.Zero при пустом результате. Проверяйте наличие пути отдельно.

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

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

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

Читает назначенную карту агента, а без явного назначения — карту мира корректного родителя. Не является проверкой готовности полигонов.

Возвращает Rid

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

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

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

Возвращает Vector3

Глобальная точка с учётом PathHeightOffset; при пустом пути и корректном родителе возвращается позиция родителя.

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

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

Возвращает float
GetPathMaxDistancefloat
# GetPathMaxDistance
C#
public float GetPathMaxDistance();
Возвращает float
GetPathMetadataFlagsNavigationPathQueryParameters3D.PathMetadataFlags
# GetPathMetadataFlags
C#
public NavigationPathQueryParameters3D.PathMetadataFlags GetPathMetadataFlags();
Возвращает NavigationPathQueryParameters3D.PathMetadataFlags
GetPathPostprocessingNavigationPathQueryParameters3D.PathPostProcessing
# GetPathPostprocessing
C#
public NavigationPathQueryParameters3D.PathPostProcessing GetPathPostprocessing();
Возвращает NavigationPathQueryParameters3D.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
GetPathfindingAlgorithmNavigationPathQueryParameters3D.PathfindingAlgorithmEnum
# GetPathfindingAlgorithm
C#
public NavigationPathQueryParameters3D.PathfindingAlgorithmEnum GetPathfindingAlgorithm();
Возвращает NavigationPathQueryParameters3D.PathfindingAlgorithmEnum
GetRadiusfloat
# GetRadius
C#
public float GetRadius();
Возвращает float
GetRidRid
# GetRid
C#
public Rid GetRid();

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

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

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

Возвращает bool

true, если текущий маршрут завершён, в том числе у конца частичного пути.

IsTargetReachablebool
# IsTargetReachable
C#
public bool IsTargetReachable();

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

Возвращает bool

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

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 включает или отключает указанный слой в битовой маске NavigationAgent3D.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 включает или отключает указанную маску в битовой маске NavigationAgent3D.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—
SetDebugPathCustomPointSizevoid
# SetDebugPathCustomPointSize
C#
public void SetDebugPathCustomPointSize(float pointSize);
Параметры
ИмяТипПо умолчанию
pointSizefloat—
SetDebugUseCustomvoid
# SetDebugUseCustom
C#
public void SetDebugUseCustom(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetHeightvoid
# SetHeight
C#
public void SetHeight(float height);
Параметры
ИмяТипПо умолчанию
heightfloat—
SetKeepYVelocityvoid
# SetKeepYVelocity
C#
public void SetKeepYVelocity(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 включает или отключает указанный слой в битовой маске NavigationAgent3D.NavigationLayers, учитывая layer_number от 1 до 32.

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

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

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

RID живой карты 3D с нужной геометрией. Не передавайте сюда карту 2D или освобождённый RID.

SetNeighborDistancevoid
# SetNeighborDistance
C#
public void SetNeighborDistance(float neighborDistance);
Параметры
ИмяТипПо умолчанию
neighborDistancefloat—
SetPathDesiredDistancevoid
# SetPathDesiredDistance
C#
public void SetPathDesiredDistance(float desiredDistance);
Параметры
ИмяТипПо умолчанию
desiredDistancefloat—
SetPathHeightOffsetvoid
# SetPathHeightOffset
C#
public void SetPathHeightOffset(float pathHeightOffset);
Параметры
ИмяТипПо умолчанию
pathHeightOffsetfloat—
SetPathMaxDistancevoid
# SetPathMaxDistance
C#
public void SetPathMaxDistance(float maxSpeed);
Параметры
ИмяТипПо умолчанию
maxSpeedfloat—
SetPathMetadataFlagsvoid
# SetPathMetadataFlags
C#
public void SetPathMetadataFlags(NavigationPathQueryParameters3D.PathMetadataFlags flags);
Параметры
ИмяТипПо умолчанию
flagsNavigationPathQueryParameters3D.PathMetadataFlags—
SetPathPostprocessingvoid
# SetPathPostprocessing
C#
public void SetPathPostprocessing(NavigationPathQueryParameters3D.PathPostProcessing pathPostprocessing);
Параметры
ИмяТипПо умолчанию
pathPostprocessingNavigationPathQueryParameters3D.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(NavigationPathQueryParameters3D.PathfindingAlgorithmEnum pathfindingAlgorithm);
Параметры
ИмяТипПо умолчанию
pathfindingAlgorithmNavigationPathQueryParameters3D.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(Vector3 position);
Параметры
ИмяТипПо умолчанию
positionVector3—
SetTimeHorizonAgentsvoid
# SetTimeHorizonAgents
C#
public void SetTimeHorizonAgents(float timeHorizon);
Параметры
ИмяТипПо умолчанию
timeHorizonfloat—
SetTimeHorizonObstaclesvoid
# SetTimeHorizonObstacles
C#
public void SetTimeHorizonObstacles(float timeHorizon);
Параметры
ИмяТипПо умолчанию
timeHorizonfloat—
SetUse3DAvoidancevoid
# SetUse3DAvoidance
C#
public void SetUse3DAvoidance(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetVelocityvoid
# SetVelocity
C#
public void SetVelocity(Vector3 velocity);
Параметры
ИмяТипПо умолчанию
velocityVector3—
SetVelocityForcedvoid
# SetVelocityForced
C#
public void SetVelocityForced(Vector3 velocity);

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

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

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

LinkReachedСобытие
# LinkReached
C#
public event NavigationAgent3D.LinkReachedEventHandler LinkReached;

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

  • position: начальная позиция достигнутой ссылки.
  • type: всегда NavigationPathQueryResult3D.PathSegmentType.Link.
  • rid: Rid ссылки.
  • owner: объект, управляющий ссылкой (обычно NavigationLink3D).
  • link_entry_position: Если доступен owner и владелец — NavigationLink3D, он будет содержать глобальную позицию точки ссылки, в которую входит агент.
  • link_exit_position: Если доступен owner и владелец — NavigationLink3D, он будет содержать глобальную позицию точки ссылки, из которой выходит агент.
Параметры обработчика
ИмяТипПо умолчанию
detailsReckfell.Collections.Dictionary—
NavigationFinishedСобытие
# NavigationFinished
C#
public event Action NavigationFinished;

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

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

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

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

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

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

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

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

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

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

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

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

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