NavigationAgent3D
3D-агент, используемый для поиска пути к нужному месту с обходом препятствий.
3D-агент, используемый для поиска пути к нужному месту с обходом препятствий.
3D-агент, используемый для поиска пути к заданной позиции с избеганием статических и динамических препятствий. Этот расчёт может использоваться родительским узлом для динамического перемещения по пути. Для корректной работы требуются навигационные данные.
Динамические препятствия обходят с помощью функции предотвращения столкновений RVO. Избегание вычисляется до физических процессов, поэтому информацию о поиске пути можно безопасно использовать на этапе физических процессов.
Примечание: После установки свойства NavigationAgent3D.TargetPosition метод NavigationAgent3D.GetNextPathPosition необходимо использовать один раз в каждом кадре физики для обновления внутренней логики пути навигационного агента. Возвращаемая им позиция вектора должна использоваться в качестве следующей позиции движения для родительского узла агента.
Примечание: Некоторые методы этого класса, такие как NavigationAgent3D.GetNextPathPosition, могут инициировать новый расчёт пути. Вызов этих методов в обратном вызове сигнала агента, например, NavigationAgent3D.WaypointReached, может привести к бесконечной рекурсии. Рекомендуется вызывать эти методы на этапе физики или, в качестве альтернативы, откладывать их вызов до конца кадра (см. ReckfellObject.CallDeferred или ReckfellObject.ConnectFlags.Deferred).
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
NavigationAgent3DКонструктор
public NavigationAgent3D();Свойства33
AvoidanceEnabledСвойство
public bool AvoidanceEnabled { get; set; }Если true, агент регистрируется для обратного вызова избегания RVO на NavigationServer3D. Когда NavigationAgent3D.Velocity задано и обработка завершена, safe_velocity Vector3 принимается с сигнальным соединением на NavigationAgent3D.VelocityComputed. Обработка избегания со многими зарегистрированными агентами имеет значительные затраты производительности и должна быть включена только для агентов, которым это в данный момент требуется.
AvoidanceLayersСвойство
public uint AvoidanceLayers { get; set; }Ударное поле, определяющее уровни избегания для этого навигационного агента. NavigationAgent3D.AvoidanceMask избегает этого агента.
AvoidanceMaskСвойство
public uint AvoidanceMask { get; set; }Ударное поле, определяющее, какие другие агенты избегают и препятствия этот Навигационный Агент избежит, когда немного совпадет, по крайней мере, один из их NavigationAgent3D.AvoidanceLayers.
AvoidancePriorityСвойство
public float AvoidancePriority { get; set; }Агент не корректирует скорость для других агентов, которые соответствуют NavigationAgent3D.AvoidanceMask, но имеют более низкий NavigationAgent3D.AvoidancePriority. Это, в свою очередь, заставляет других агентов с более низким приоритетом корректировать свои скорости еще больше, чтобы избежать столкновения с этим агентом.
DebugEnabledСвойство
public bool DebugEnabled { get; set; }Если true, отображаются визуальные отладочные данные для этого агента.
DebugPathCustomColorСвойство
public Color DebugPathCustomColor { get; set; }Если NavigationAgent3D.DebugUseCustom равен true, то этот цвет используется для этого агента вместо глобального цвета.
DebugPathCustomPointSizeСвойство
public float DebugPathCustomPointSize { get; set; }Если NavigationAgent3D.DebugUseCustom равен true, то для рендеринга точек пути этого агента, вместо глобального размера точки, используется этот растеризованный размер точки.
DebugUseCustomСвойство
public bool DebugUseCustom { get; set; }Если true, то вместо глобального цвета используется определенный NavigationAgent3D.DebugPathCustomColor для этого агента.
HeightСвойство
public float Height { get; set; }Высота агента избегания. Агенты будут игнорировать других агентов или препятствия, которые находятся выше или ниже их текущего положения + высота в 2D-избегании. Ничего не делает в 3D-избегании, которое использует только радиусные сферы.
KeepYVelocityСвойство
public bool KeepYVelocity { get; set; }Если true, и агент использует 2D-избегание, он запомнит заданную скорость оси Y и повторно применит ее после шага избегания. В то время как 2D-избегание не имеет оси Y и моделирует на плоской плоскости, эта настройка может помочь смягчить наиболее очевидное отсечение на неровной 3D-геометрии.
MaxNeighborsСвойство
public int MaxNeighbors { get; set; }Максимальное количество соседей, которых может учитывать агент.
MaxSpeedСвойство
public float MaxSpeed { get; set; }Максимальная скорость, с которой может двигаться агент.
NavigationLayersСвойство
public uint NavigationLayers { get; set; }Битовое поле, определяющее, какие навигационные слои навигационных регионов этот агент будет использовать для расчета пути. Изменение его во время выполнения очистит текущий навигационный путь и сгенерирует новый, в соответствии с новыми навигационными слоями.
NeighborDistanceСвойство
public float NeighborDistance { get; set; }Расстояние для поиска других агентов.
PathDesiredDistanceСвойство
public float PathDesiredDistance { get; set; }Допуск подхода родителя к следующей точке. Согласуйте масштаб, скорость и высоту начала координат тела с поверхностью пути; слишком малое значение может мешать продвижению по точкам.
PathHeightOffsetСвойство
public float PathHeightOffset { get; set; }Смещение, вычитаемое по Y из точек, возвращаемых GetNextPathPosition и GetFinalPosition. В проверке значение 1 уменьшило высоту конечной точки на 1. Не меняет физический коллайдер и не перезапекает меш.
PathMaxDistanceСвойство
public float PathMaxDistance { get; set; }Максимальное расстояние, на которое агент может отойти от идеального пути до конечной позиции. Это может произойти из-за попыток избежать столкновений. При превышении максимального расстояния он пересчитывает идеальный путь.
PathMetadataFlagsСвойство
public NavigationPathQueryParameters3D.PathMetadataFlags PathMetadataFlags { get; set; }Дополнительная информация для возврата по пути навигации.
PathPostprocessingСвойство
public NavigationPathQueryParameters3D.PathPostProcessing PathPostprocessing { get; set; }Постобработка пути, примененная к необработанному коридору пути, найденному NavigationAgent3D.PathfindingAlgorithm.
PathReturnMaxLengthСвойство
public float PathReturnMaxLength { get; set; }Максимально допустимая длина возвращаемого пути в мировых единицах. При превышении этой длины путь будет обрезан.
PathReturnMaxRadiusСвойство
public float PathReturnMaxRadius { get; set; }Максимально допустимый радиус возвращаемого пути от начала пути в мировых единицах. При превышении этого радиуса путь будет обрезан. По сравнению с NavigationAgent3D.PathReturnMaxLength, это позволяет агенту пройти значительно больше, если ему потребуется обойти угол.
Примечание: При этом будет выполнено обрезание сферы с учётом только фактических точек пути навигационной сетки, при этом первая точка пути будет находиться в центре сферы.
PathSearchMaxDistanceСвойство
public float PathSearchMaxDistance { get; set; }Максимальное расстояние, на которое может отдалиться искомый полигон от начального полигона, прежде чем поиск пути отменит поиск пути к целевому полигону (возможно, недостижимому или очень удалённому). В этом случае поиск пути сбрасывается и строит путь от начального полигона до полигона, который был найден ближайшим к целевой позиции. Значение 0 или ниже считается неограниченным. В случае неограниченного значения поиск пути будет искать все полигоны, соединённые с начальным полигоном, пока не будет найден целевой полигон или пока не будут исчерпаны все доступные варианты поиска полигонов.
PathSearchMaxPolygonsСвойство
public int PathSearchMaxPolygons { get; set; }Максимальное количество полигонов, которые будут просмотрены до того, как поиск пути отменит поиск пути к целевому полигону (возможно, недостижимому или очень удалённому). В этом случае поиск пути сбрасывается и строит путь от начального полигона до полигона, который был найден ближайшим к целевой позиции. Значение 0 или меньше считается неограниченным. В случае неограниченного поиска пути поиск пути будет искать все полигоны, соединённые с начальным полигоном, пока не будет найден целевой полигон или пока не будут исчерпаны все доступные варианты поиска полигонов.
PathfindingAlgorithmСвойство
public NavigationPathQueryParameters3D.PathfindingAlgorithmEnum PathfindingAlgorithm { get; set; }Алгоритм поиска пути, используемый в запросе пути.
Радиус
RadiusСвойство
public float Radius { get; set; }Радиус агента избегания. Это «тело» агента избегания, а не начальный радиус маневра избегания (который контролируется NavigationAgent3D.NeighborDistance).
Не влияет на обычный поиск пути. Чтобы изменить радиус поиска пути актера, запеките ресурсы NavigationMesh с другим свойством NavigationMesh.AgentRadius и используйте разные навигационные карты для каждого размера актера.
SimplifyEpsilonСвойство
public float SimplifyEpsilon { get; set; }Упрощение пути в мировых единицах.
SimplifyPathСвойство
public bool SimplifyPath { get; set; }Если true, будет возвращена упрощенная версия пути с удаленными менее критическими точками пути. Степень упрощения контролируется NavigationAgent3D.SimplifyEpsilon. Упрощение использует вариант алгоритма Ramer-Douglas-Peucker для прореживания точек кривой.
Упрощение пути может быть полезно для смягчения различных проблем следования по пути, которые могут возникнуть с определенными типами агентов и поведением сценария. Например, «рулевое управление» или избегание в «открытых полях».
TargetDesiredDistanceСвойство
public float TargetDesiredDistance { get; set; }Допуск достижения исходной цели. Проверка использует расстояние в 3D: вертикальное смещение начала координат тела также важно.
TargetPositionСвойство
public Vector3 TargetPosition { get; set; }Глобальная цель агента 3D. Присваивание запрашивает новый путь даже для той же позиции; не повторяйте его каждый кадр без необходимости. Сам агент не выполняет движение тела.
TimeHorizonAgentsСвойство
public float TimeHorizonAgents { get; set; }Минимальное количество времени, в течение которого скорость этого агента, рассчитанная с помощью алгоритма предотвращения столкновения, безопасна по отношению к другим агентам. Чем больше число, тем быстрее агент будет реагировать на другие агенты, но меньше свободы в выборе скорости. Слишком высокое значение значительно замедляет движение агента. Должно быть положительным.
TimeHorizonObstaclesСвойство
public float TimeHorizonObstacles { get; set; }Минимальное количество времени, в течение которого скорость этого агента, рассчитанная с помощью алгоритма предотвращения столкновения, безопасна с точки зрения статических препятствий. Чем больше число, тем быстрее агент будет реагировать на статические преграды, но меньше свободы в выборе скорости. Слишком высокое значение значительно замедляет движение агента. Должно быть положительным.
Use3DAvoidanceСвойство
public bool Use3DAvoidance { get; set; }Если true, агент вычисляет скорости избегания в 3D всенаправленно, например, для игр, которые происходят в воздухе, под водой или в космосе. Агенты, использующие 3D-избегание, избегают только других агентов, использующих 3D-избегание, и реагируют на препятствия избегания на основе радиуса. Они игнорируют любые препятствия на основе вершин.
Если false, агент вычисляет скорости избегания в 2D вдоль осей x и z, игнорируя ось y. Агенты, использующие 2D-избегание, избегают только других агентов, использующих 2D-избегание, и реагируют на препятствия избегания на основе радиуса или препятствия избегания на основе вершин. Другие агенты, использующие 2D-избегание, которые находятся ниже или выше их текущего положения, включая NavigationAgent3D.Height, игнорируются.
VelocityСвойство
public Vector3 Velocity { get; set; }Устанавливает новую желаемую скорость для агента. Симуляция избегания попытается достичь этой скорости, если это возможно, но изменит ее, чтобы избежать столкновения с другими агентами и препятствиями. Когда агент телепортируется в новое положение, используйте также NavigationAgent3D.SetVelocityForced для сброса внутренней скорости симуляции.
Методы86
DistanceToTargetfloat
public float DistanceToTarget();Возвращает расстояние до целевой позиции, используя глобальную позицию агента. Пользователь должен установить NavigationAgent3D.TargetPosition, чтобы это было точным.
floatGetAvoidanceEnabledbool
public bool GetAvoidanceEnabled();boolGetAvoidanceLayerValuebool
public bool GetAvoidanceLayerValue(int layerNumber);Возвращается ли указанный слой NavigationAgent3D.AvoidanceLayers Включена битмаска, при условии a layer_number от 1 до 32 лет.
| Имя | Тип | По умолчанию |
|---|---|---|
layerNumber | int | — |
boolGetAvoidanceLayersuint
public uint GetAvoidanceLayers();uintGetAvoidanceMaskuint
public uint GetAvoidanceMask();uintGetAvoidanceMaskValuebool
public bool GetAvoidanceMaskValue(int maskNumber);Возвращается ли указанная маска NavigationAgent3D.AvoidanceMask Включена битмаска, при условии a mask_number от 1 до 32 лет.
| Имя | Тип | По умолчанию |
|---|---|---|
maskNumber | int | — |
boolGetAvoidancePriorityfloat
public float GetAvoidancePriority();floatGetCurrentNavigationPathVector3[]
public Vector3[] GetCurrentNavigationPath();Читает текущие точки пути, а не двигает родителя. Для готового физического примера геометрия карты и пола проверяются отдельно.
Vector3[]Vector3[] текущего результата. Перед доступом к концам проверьте Length.
GetCurrentNavigationPathIndexint
public int GetCurrentNavigationPathIndex();Возвращает индекс, по которому в данный момент находится агент в массиве Vector3[] пути навигации.
intGetCurrentNavigationResultNavigationPathQueryResult3D
public NavigationPathQueryResult3D GetCurrentNavigationResult();Возвращает результат запроса пути, по которому в данный момент следует агент.
NavigationPathQueryResult3DGetDebugEnabledbool
public bool GetDebugEnabled();boolGetDebugPathCustomColorColor
public Color GetDebugPathCustomColor();ColorGetDebugPathCustomPointSizefloat
public float GetDebugPathCustomPointSize();floatGetDebugUseCustombool
public bool GetDebugUseCustom();boolGetFinalPositionVector3
public Vector3 GetFinalPosition();Обновляет навигацию и читает конец текущего пути. При недостижимой цели он может остаться на доступной границе.
Vector3Последняя точка с вычетом PathHeightOffset по Y; Vector3.Zero при пустом результате. Проверяйте наличие пути отдельно.
GetHeightfloat
public float GetHeight();floatGetKeepYVelocitybool
public bool GetKeepYVelocity();boolGetMaxNeighborsint
public int GetMaxNeighbors();intGetMaxSpeedfloat
public float GetMaxSpeed();floatGetNavigationLayerValuebool
public bool GetNavigationLayerValue(int layerNumber);Возвращает, включен ли указанный слой битовой маски NavigationAgent3D.NavigationLayers, учитывая layer_number от 1 до 32.
| Имя | Тип | По умолчанию |
|---|---|---|
layerNumber | int | — |
boolGetNavigationLayersuint
public uint GetNavigationLayers();uintGetNavigationMapRid
public Rid GetNavigationMap();Читает назначенную карту агента, а без явного назначения — карту мира корректного родителя. Не является проверкой готовности полигонов.
RidRID выбранной карты; может быть нулевым без назначения и подходящего родителя.
GetNeighborDistancefloat
public float GetNeighborDistance();floatGetNextPathPositionVector3
public Vector3 GetNextPathPosition();Обновляет навигацию и возвращает очередную точку для вашего кода движения. Пока маршрут не завершён, используйте в цикле физики; это не команда перемещения тела.
Vector3Глобальная точка с учётом PathHeightOffset; при пустом пути и корректном родителе возвращается позиция родителя.
GetPathDesiredDistancefloat
public float GetPathDesiredDistance();floatGetPathHeightOffsetfloat
public float GetPathHeightOffset();floatGetPathLengthfloat
public float GetPathLength();Возвращает длину текущего вычисленного пути. Возвращаемое значение — 0.0, если путь всё ещё вычисляется или вычисление ещё не было запрошено.
floatGetPathMaxDistancefloat
public float GetPathMaxDistance();floatGetPathMetadataFlagsNavigationPathQueryParameters3D.PathMetadataFlags
public NavigationPathQueryParameters3D.PathMetadataFlags GetPathMetadataFlags();NavigationPathQueryParameters3D.PathMetadataFlagsGetPathPostprocessingNavigationPathQueryParameters3D.PathPostProcessing
public NavigationPathQueryParameters3D.PathPostProcessing GetPathPostprocessing();NavigationPathQueryParameters3D.PathPostProcessingGetPathReturnMaxLengthfloat
public float GetPathReturnMaxLength();floatGetPathReturnMaxRadiusfloat
public float GetPathReturnMaxRadius();floatGetPathSearchMaxDistancefloat
public float GetPathSearchMaxDistance();floatGetPathSearchMaxPolygonsint
public int GetPathSearchMaxPolygons();intGetPathfindingAlgorithmNavigationPathQueryParameters3D.PathfindingAlgorithmEnum
public NavigationPathQueryParameters3D.PathfindingAlgorithmEnum GetPathfindingAlgorithm();NavigationPathQueryParameters3D.PathfindingAlgorithmEnumGetRadiusfloat
public float GetRadius();floatGetRidRid
public Rid GetRid();Возвращает Rid этого агента на NavigationServer3D.
RidGetSimplifyEpsilonfloat
public float GetSimplifyEpsilon();floatGetSimplifyPathbool
public bool GetSimplifyPath();boolGetTargetDesiredDistancefloat
public float GetTargetDesiredDistance();floatGetTargetPositionVector3
public Vector3 GetTargetPosition();Vector3GetTimeHorizonAgentsfloat
public float GetTimeHorizonAgents();floatGetTimeHorizonObstaclesfloat
public float GetTimeHorizonObstacles();floatGetUse3DAvoidancebool
public bool GetUse3DAvoidance();boolGetVelocityVector3
public Vector3 GetVelocity();Vector3IsNavigationFinishedbool
public bool IsNavigationFinished();Обновляет состояние и проверяет завершение текущего маршрута. Это не то же, что достижение исходной цели: проверенный частичный путь завершился без IsTargetReached.
booltrue, если текущий маршрут завершён, в том числе у конца частичного пути.
IsTargetReachablebool
public bool IsTargetReachable();Обновляет навигацию и сравнивает её конечную точку с целью по TargetDesiredDistance. Не проверяет физический проход сквозь стены.
boolРезультат сравнения конца с целью; используйте вместе с проверкой текущего пути.
IsTargetReachedbool
public bool IsTargetReached();Читает сохранённое состояние достижения исходной цели. Оно выставляется при обновлении следования с учётом TargetDesiredDistance.
booltrue для отмеченного достижения исходной цели; конец частичного пути может оставить false.
SetAvoidanceEnabledvoid
public void SetAvoidanceEnabled(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetAvoidanceLayerValuevoid
public void SetAvoidanceLayerValue(int layerNumber, bool value);На основе value включает или отключает указанный слой в битовой маске NavigationAgent3D.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 включает или отключает указанную маску в битовой маске NavigationAgent3D.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 | — |
SetDebugPathCustomPointSizevoid
public void SetDebugPathCustomPointSize(float pointSize);| Имя | Тип | По умолчанию |
|---|---|---|
pointSize | float | — |
SetDebugUseCustomvoid
public void SetDebugUseCustom(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetHeightvoid
public void SetHeight(float height);| Имя | Тип | По умолчанию |
|---|---|---|
height | float | — |
SetKeepYVelocityvoid
public void SetKeepYVelocity(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 включает или отключает указанный слой в битовой маске NavigationAgent3D.NavigationLayers, учитывая layer_number от 1 до 32.
| Имя | Тип | По умолчанию |
|---|---|---|
layerNumber | int | — |
value | bool | — |
SetNavigationLayersvoid
public void SetNavigationLayers(uint navigationLayers);| Имя | Тип | По умолчанию |
|---|---|---|
navigationLayers | uint | — |
SetNavigationMapvoid
public void SetNavigationMap(Rid navigationMap);Задаёт явную карту для запросов Entity и отправляет назначение серверному агенту. При активной цели запрашивает новый маршрут; дождитесь обработки серверного изменения.
| Имя | Тип | По умолчанию |
|---|---|---|
navigationMap | Rid | — |
navigationMapRID живой карты 3D с нужной геометрией. Не передавайте сюда карту 2D или освобождённый RID.
SetNeighborDistancevoid
public void SetNeighborDistance(float neighborDistance);| Имя | Тип | По умолчанию |
|---|---|---|
neighborDistance | float | — |
SetPathDesiredDistancevoid
public void SetPathDesiredDistance(float desiredDistance);| Имя | Тип | По умолчанию |
|---|---|---|
desiredDistance | float | — |
SetPathHeightOffsetvoid
public void SetPathHeightOffset(float pathHeightOffset);| Имя | Тип | По умолчанию |
|---|---|---|
pathHeightOffset | float | — |
SetPathMaxDistancevoid
public void SetPathMaxDistance(float maxSpeed);| Имя | Тип | По умолчанию |
|---|---|---|
maxSpeed | float | — |
SetPathMetadataFlagsvoid
public void SetPathMetadataFlags(NavigationPathQueryParameters3D.PathMetadataFlags flags);| Имя | Тип | По умолчанию |
|---|---|---|
flags | NavigationPathQueryParameters3D.PathMetadataFlags | — |
SetPathPostprocessingvoid
public void SetPathPostprocessing(NavigationPathQueryParameters3D.PathPostProcessing pathPostprocessing);| Имя | Тип | По умолчанию |
|---|---|---|
pathPostprocessing | NavigationPathQueryParameters3D.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(NavigationPathQueryParameters3D.PathfindingAlgorithmEnum pathfindingAlgorithm);| Имя | Тип | По умолчанию |
|---|---|---|
pathfindingAlgorithm | NavigationPathQueryParameters3D.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(Vector3 position);| Имя | Тип | По умолчанию |
|---|---|---|
position | Vector3 | — |
SetTimeHorizonAgentsvoid
public void SetTimeHorizonAgents(float timeHorizon);| Имя | Тип | По умолчанию |
|---|---|---|
timeHorizon | float | — |
SetTimeHorizonObstaclesvoid
public void SetTimeHorizonObstacles(float timeHorizon);| Имя | Тип | По умолчанию |
|---|---|---|
timeHorizon | float | — |
SetUse3DAvoidancevoid
public void SetUse3DAvoidance(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetVelocityvoid
public void SetVelocity(Vector3 velocity);| Имя | Тип | По умолчанию |
|---|---|---|
velocity | Vector3 | — |
SetVelocityForcedvoid
public void SetVelocityForced(Vector3 velocity);Заменяет внутреннюю скорость в моделировании избегания столкновений на NavigationAgent3D.Velocity. Когда агент телепортируется в новое положение, эта функция должна использоваться в том же кадре. При частом вызове эта функция может привести к застреванию агентов.
| Имя | Тип | По умолчанию |
|---|---|---|
velocity | Vector3 | — |
Сигналы и события6
LinkReachedСобытие
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, он будет содержать глобальную позицию точки ссылки, из которой выходит агент.
| Имя | Тип | По умолчанию |
|---|---|---|
details | Reckfell.Collections.Dictionary | — |
NavigationFinishedСобытие
public event Action NavigationFinished;Сигнализирует о том, что навигация агента завершена. Если цель достижима, навигация заканчивается, когда цель достигнута. Если цель недостижима, навигация заканчивается, когда достигнута последняя точка маршрута. Этот сигнал выдается только один раз на загруженный путь.
Этот сигнал будет выдан сразу после NavigationAgent3D.TargetReached, когда цель достижима.
PathChangedСобытие
public event Action PathChanged;Выдается, когда агенту необходимо обновить загруженный путь:
- потому что путь ранее был пуст.
- потому что карта навигации изменилась.
- потому что агент оттолкнулся от текущего сегмента пути дальше, чем
NavigationAgent3D.PathMaxDistance.
TargetReachedСобытие
public event Action TargetReached;Сигнализирует о том, что агент достиг цели, т. е. агент переместился в пределах NavigationAgent3D.TargetDesiredDistance от NavigationAgent3D.TargetPosition. Этот сигнал посылается только один раз на загруженный путь.
Этот сигнал будет посылаться непосредственно перед NavigationAgent3D.NavigationFinished, когда цель достижима.
Не всегда возможно достичь цели, но всегда должно быть возможно достичь конечной позиции. См. NavigationAgent3D.GetFinalPosition.
VelocityComputedСобытие
public event NavigationAgent3D.VelocityComputedEventHandler VelocityComputed;Уведомляет, когда вычисляется скорость избегания столкновений. Выпускается каждое обновление, пока NavigationAgent3D.AvoidanceEnabled имеет значение true и у агента есть навигационная карта.
| Имя | Тип | По умолчанию |
|---|---|---|
safeVelocity | Vector3 | — |
WaypointReachedСобытие
public event NavigationAgent3D.WaypointReachedEventHandler WaypointReached;Сигнализирует о том, что агент достиг путевой точки. Выдается, когда агент перемещается в пределах NavigationAgent3D.PathDesiredDistance от следующей позиции пути.
Словарь сведений может содержать следующие ключи в зависимости от значения NavigationAgent3D.PathMetadataFlags:
position: позиция путевой точки, которая была достигнута.type: тип навигационного примитива (регион или ссылка), который содержит эту путевую точку.rid:Ridсодержащего навигационного примитива (регион или ссылка).owner: объект, который управляет содержащим навигационным примитивом (регион или ссылка).
| Имя | Тип | По умолчанию |
|---|---|---|
details | Reckfell.Collections.Dictionary | — |