reckfellENGINE

NavigationServer3D

Серверный интерфейс для низкоуровневого доступа к 3D-навигации.

На этой странице
class NavigationServer3DReckfellSharp

Серверный интерфейс для низкоуровневого доступа к 3D-навигации.

NavigationServer3D - сервер, который обрабатывает навигационные карты, области и агенты. AStar3D. Карты делятся на регионы, которые состоят из навигационных ячеек. Вместе они определяют судоходные зоны в мире 3D. Примечание: Большинство NavigationServer3D Изменения вступают в силу после следующей физики, а не сразу, включая все изменения, внесенные в карты, регионы или агенты навигационными узлами на дереве сцены или с помощью сценариев. Для того чтобы два региона были соединены друг с другом, они должны иметь аналогичный край. edge_connection_margin на вершину другого края. Вы можете отправить навигационные слои в регионы с NavigationServer3D.RegionSetNavigationLayers, которые затем могут быть проверены при запрашивании пути с NavigationServer3D.MapGetPath. Это может быть использовано для того, чтобы разрешить или исключить определенные области для некоторых объектов. Для использования системы предотвращения столкновений вы можете использовать агенты. Вы можете установить целевую скорость агента, а затем серверы излучают звонок с модифицированной скоростью. Примечание: Система предотвращения столкновения игнорирует регионы. Использование модифицированной скорости напрямую может переместить агент за пределы зоны, в которой происходит столкновение. Это ограничение системы предупреждения столкновения, и любая более сложная ситуация может потребовать использования двигателя физики. Этот сервер хранит следы любого вызова и выполняет их в фазе синхронизации. Это означает, что вы можете запросить любое изменение карты, используя любую нить, не беспокоясь.

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

Свойства1

SingletonСвойство
# Singleton
C#
public static NavigationServer3DInstance Singleton { get; }

Методы157

AgentCreateRid
# AgentCreate
C#
public static Rid AgentCreate();

Создает агента.

Возвращает Rid
AgentGetAvoidanceEnabledbool
# AgentGetAvoidanceEnabled
C#
public static bool AgentGetAvoidanceEnabled(Rid agent);

Возвращает true, если предоставленный agent имеет включенное избегание.

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает bool
AgentGetAvoidanceLayersuint
# AgentGetAvoidanceLayers
C#
public static uint AgentGetAvoidanceLayers(Rid agent);

Возвращает битовую маску avoidance_layers указанного agent.

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает uint
AgentGetAvoidanceMaskuint
# AgentGetAvoidanceMask
C#
public static uint AgentGetAvoidanceMask(Rid agent);

Возвращает битовую маску avoidance_mask указанного agent.

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает uint
AgentGetAvoidancePriorityfloat
# AgentGetAvoidancePriority
C#
public static float AgentGetAvoidancePriority(Rid agent);

Возвращает avoidance_priority указанного agent.

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает float
AgentGetHeightfloat
# AgentGetHeight
C#
public static float AgentGetHeight(Rid agent);

Возвращает height (высоту) указанного agent.

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает float
AgentGetMapRid
# AgentGetMap
C#
public static Rid AgentGetMap(Rid agent);

Возвращает Rid навигационной карты , которой в данный момент назначен запрошенный agent.

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает Rid
AgentGetMaxNeighborsint
# AgentGetMaxNeighbors
C#
public static int AgentGetMaxNeighbors(Rid agent);

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

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает int
AgentGetMaxSpeedfloat
# AgentGetMaxSpeed
C#
public static float AgentGetMaxSpeed(Rid agent);

Возвращает максимальную скорость указанного agent.

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает float
AgentGetNeighborDistancefloat
# AgentGetNeighborDistance
C#
public static float AgentGetNeighborDistance(Rid agent);

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

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает float
AgentGetPausedbool
# AgentGetPaused
C#
public static bool AgentGetPaused(Rid agent);

Возвращает true, если указанный agent приостановлен.

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает bool
AgentGetPositionVector3
# AgentGetPosition
C#
public static Vector3 AgentGetPosition(Rid agent);

Возвращает позицию указанного agent в мировом пространстве.

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает Vector3
AgentGetRadiusfloat
# AgentGetRadius
C#
public static float AgentGetRadius(Rid agent);

Возвращает радиус указанного agent.

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает float
AgentGetTimeHorizonAgentsfloat
# AgentGetTimeHorizonAgents
C#
public static float AgentGetTimeHorizonAgents(Rid agent);

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

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает float
AgentGetTimeHorizonObstaclesfloat
# AgentGetTimeHorizonObstacles
C#
public static float AgentGetTimeHorizonObstacles(Rid agent);

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

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает float
AgentGetUse3DAvoidancebool
# AgentGetUse3DAvoidance
C#
public static bool AgentGetUse3DAvoidance(Rid agent);

Возвращает true, если предоставленный agent использует избегание в трехмерном пространстве Vector3(x,y,z) вместо горизонтального 2D Vector2(x,y) / Vector3(x,0.0,z).

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает bool
AgentGetVelocityVector3
# AgentGetVelocity
C#
public static Vector3 AgentGetVelocity(Rid agent);

Возвращает скорость указанного agent.

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает Vector3
AgentHasAvoidanceCallbackbool
# AgentHasAvoidanceCallback
C#
public static bool AgentHasAvoidanceCallback(Rid agent);

Верните true, если указанный agent имеет обратный вызов для избегания.

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает bool
AgentIsMapChangedbool
# AgentIsMapChanged
C#
public static bool AgentIsMapChanged(Rid agent);

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

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает bool
AgentSetAvoidanceCallbackvoid
# AgentSetAvoidanceCallback
C#
public static void AgentSetAvoidanceCallback(Rid agent, Callable callback);

Устанавливает обратный вызов Callable, который вызывается после каждого шага обработки избегания для agent. Вычисленный safe_velocity будет отправлен с сигналом объекту непосредственно перед физическими расчетами. Примечание: Созданные обратные вызовы всегда обрабатываются независимо от состояния EntityTree, пока агент находится на навигационной карте и не освобожден. Чтобы отключить отправку обратного вызова от агента, снова используйте NavigationServer3D.AgentSetAvoidanceCallback с пустым Callable.

Параметры
ИмяТипПо умолчанию
agentRid—
callbackCallable—
AgentSetAvoidanceEnabledvoid
# AgentSetAvoidanceEnabled
C#
public static void AgentSetAvoidanceEnabled(Rid agent, bool enabled);

Если enabled имеет значение true, предоставленный agent вычисляет избегание.

Параметры
ИмяТипПо умолчанию
agentRid—
enabledbool—
AgentSetAvoidanceLayersvoid
# AgentSetAvoidanceLayers
C#
public static void AgentSetAvoidanceLayers(Rid agent, uint layers);

Установите битовую маску агента avoidance_layers.

Параметры
ИмяТипПо умолчанию
agentRid—
layersuint—
AgentSetAvoidanceMaskvoid
# AgentSetAvoidanceMask
C#
public static void AgentSetAvoidanceMask(Rid agent, uint mask);

Установите битовую маску avoidance_mask агента.

Параметры
ИмяТипПо умолчанию
agentRid—
maskuint—
AgentSetAvoidancePriorityvoid
# AgentSetAvoidancePriority
C#
public static void AgentSetAvoidancePriority(Rid agent, float priority);

Установите avoidance_priority агента с priority от 0,0 (самый низкий приоритет) до 1,0 (самый высокий приоритет). Указанный agent не корректирует скорость для других агентов, которые соответствуют avoidance_mask, но имеют более низкий avoidance_priority. Это, в свою очередь, заставляет других агентов с более низким приоритетом корректировать свои скорости еще больше, чтобы избежать столкновения с этим агентом.

Параметры
ИмяТипПо умолчанию
agentRid—
priorityfloat—
AgentSetHeightvoid
# AgentSetHeight
C#
public static void AgentSetHeight(Rid agent, float height);

Обновляет предоставленный agent height.

Параметры
ИмяТипПо умолчанию
agentRid—
heightfloat—
AgentSetMapvoid
# AgentSetMap
C#
public static void AgentSetMap(Rid agent, Rid map);

Размещает агента на карте.

Параметры
ИмяТипПо умолчанию
agentRid—
mapRid—
AgentSetMaxNeighborsvoid
# AgentSetMaxNeighbors
C#
public static void AgentSetMaxNeighbors(Rid agent, int count);

Устанавливает максимальное количество других агентов, которые агент учитывает при навигации. Чем больше это число, тем дольше время выполнения симуляции. Если число слишком мало, симуляция не будет безопасной.

Параметры
ИмяТипПо умолчанию
agentRid—
countint—
AgentSetMaxSpeedvoid
# AgentSetMaxSpeed
C#
public static void AgentSetMaxSpeed(Rid agent, float maxSpeed);

Устанавливает максимальную скорость агента. Должна быть положительной.

Параметры
ИмяТипПо умолчанию
agentRid—
maxSpeedfloat—
AgentSetNeighborDistancevoid
# AgentSetNeighborDistance
C#
public static void AgentSetNeighborDistance(Rid agent, float distance);

Устанавливает максимальное расстояние до других агентов, которое этот агент учитывает при навигации. Чем больше это число, тем дольше время выполнения симуляции. Если число слишком мало, симуляция не будет безопасной.

Параметры
ИмяТипПо умолчанию
agentRid—
distancefloat—
AgentSetPausedvoid
# AgentSetPaused
C#
public static void AgentSetPaused(Rid agent, bool paused);

Если paused равно true, указанный agent не будет обработан. Например, он не будет рассчитывать скорости уклонения или получать обратные вызовы уклонения.

Параметры
ИмяТипПо умолчанию
agentRid—
pausedbool—
AgentSetPositionvoid
# AgentSetPosition
C#
public static void AgentSetPosition(Rid agent, Vector3 position);

Устанавливает положение агента в мировом пространстве.

Параметры
ИмяТипПо умолчанию
agentRid—
positionVector3—
AgentSetRadiusvoid
# AgentSetRadius
C#
public static void AgentSetRadius(Rid agent, float radius);

Устанавливает радиус действия агента.

Параметры
ИмяТипПо умолчанию
agentRid—
radiusfloat—
AgentSetTimeHorizonAgentsvoid
# AgentSetTimeHorizonAgents
C#
public static void AgentSetTimeHorizonAgents(Rid agent, float timeHorizon);

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

Параметры
ИмяТипПо умолчанию
agentRid—
timeHorizonfloat—
AgentSetTimeHorizonObstaclesvoid
# AgentSetTimeHorizonObstacles
C#
public static void AgentSetTimeHorizonObstacles(Rid agent, float timeHorizon);

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

Параметры
ИмяТипПо умолчанию
agentRid—
timeHorizonfloat—
AgentSetUse3DAvoidancevoid
# AgentSetUse3DAvoidance
C#
public static void AgentSetUse3DAvoidance(Rid agent, bool enabled);

Установки, если агент использует 2D уклонение или 3D уклонение при возможности. Если true агент рассчитал скорость уклонения в 3D для осей XYZ, например для игр, происходящих в воздухе, подводном или космическом пространстве. 3D-агент избегает только других 3D-агентов. 3D-агент реагирует только на препятствия, связанные с избежанием радиуса. 3D-агент игнорирует любые препятствия на основе вершин. 3D-агент избегает только других 3D агентов. Если false агент рассчитал скорость уклонения в 2D вдоль xz-axes, игнорируя ось y. 2D-агент только избегает других 2D-агентов. 2D-агент реагирует на препятствия, мешающие избежанию радиуса. 2D-агент реагирует на преграды избегания на основе вершины. 2D-агент избегает только других 2D агентов. 2D-агенты будут игнорировать другие 2D-агенты или препятствия, которые ниже их нынешнего положения или выше их нынешнего положения, включая рост агента в 2D-избежании.

Параметры
ИмяТипПо умолчанию
agentRid—
enabledbool—
AgentSetVelocityvoid
# AgentSetVelocity
C#
public static void AgentSetVelocity(Rid agent, Vector3 velocity);

Комплекты velocity как новая требуемая скорость для указанного agentВ случае телепортации агента на новое место, расположенное далеко от него, его следует использовать. NavigationServer3D.AgentSetVelocityForced вместо этого перезагрузить состояние внутренней скорости.

Параметры
ИмяТипПо умолчанию
agentRid—
velocityVector3—
AgentSetVelocityForcedvoid
# AgentSetVelocityForced
C#
public static void AgentSetVelocityForced(Rid agent, Vector3 velocity);

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

Параметры
ИмяТипПо умолчанию
agentRid—
velocityVector3—
BakeFromSourceGeometryDatavoid
# BakeFromSourceGeometryData
C#
public static void BakeFromSourceGeometryData(NavigationMesh navigationMesh, NavigationMeshSourceGeometryData3D sourceGeometryData, Callable callback = default);

Синхронно запекает переданные исходные данные в ресурс навигации. Не разбирает автоматически весь уровень и не назначает результат региону. Проверьте количество полигонов, затем назначьте ресурс и дождитесь публикации карты.

Параметры
ИмяТипПо умолчанию
navigationMeshNavigationMesh—
sourceGeometryDataNavigationMeshSourceGeometryData3D—
callbackCallabledefault
navigationMesh

Ресурс результата с настроенными параметрами запекания, включая радиус и разрешение. Его содержимое изменяется вызовом.

sourceGeometryData

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

BakeFromSourceGeometryDataAsyncvoid
# BakeFromSourceGeometryDataAsync
C#
public static void BakeFromSourceGeometryDataAsync(NavigationMesh navigationMesh, NavigationMeshSourceGeometryData3D sourceGeometryData, Callable callback = default);

Запекает предоставленный navigation_mesh с данными из предоставленного source_geometry_data как асинхронную задачу, работающую в фоновом потоке. После завершения процесса будет вызван необязательный callback.

Параметры
ИмяТипПо умолчанию
navigationMeshNavigationMesh—
sourceGeometryDataNavigationMeshSourceGeometryData3D—
callbackCallabledefault
FreeRidvoid
# FreeRid
C#
public static void FreeRid(Rid rid);

Уничтожает указанный RID.

Параметры
ИмяТипПо умолчанию
ridRid—
GetDebugEnabledbool
# GetDebugEnabled
C#
public static bool GetDebugEnabled();

Читает флаг отладки сервера. Включённый флаг не доказывает наличие видимой геометрии: штатное отображение создают соответствующие Entity с учётом дополнительных настроек.

Возвращает bool

Текущее значение флага; это не проверка отображения или правильности пути.

GetMapsReckfell.Collections.Array<Rid>
# GetMaps
C#
public static Reckfell.Collections.Array<Rid> GetMaps();

Возвращает все созданные навигационные карты Rid на NavigationServer. Это возвращает как 2D, так и 3D созданные навигационные карты, поскольку между ними нет технического различия.

Возвращает Reckfell.Collections.Array<Rid>
GetProcessInfoint
# GetProcessInfo
C#
public static int GetProcessInfo(NavigationServer3D.ProcessInfo processInfo);

Читает счётчик 3D-сервера. Сводка собирается по активным картам после обработки сервером, а не по всем выделенным RID. Отключённый регион остаётся в RegionCount, пока назначен активной карте. Это не измерение времени поиска.

Параметры
ИмяТипПо умолчанию
processInfoNavigationServer3D.ProcessInfo—
processInfo

Выбор счётчика: ActiveMaps, RegionCount, PolygonCount или другой элемент ProcessInfo.

Возвращает int

Целое значение счётчика. Последние изменения карты могут ещё ожидать обработки.

IsBakingNavigationMeshbool
# IsBakingNavigationMesh
C#
public static bool IsBakingNavigationMesh(NavigationMesh navigationMesh);

Возвращает true, когда предоставленная навигационная сетка запекается в фоновом потоке.

Параметры
ИмяТипПо умолчанию
navigationMeshNavigationMesh—
Возвращает bool
LinkCreateRid
# LinkCreate
C#
public static Rid LinkCreate();

Создайте новую связь (Link) между двумя позициями на карте.

Возвращает Rid
LinkGetEnabledbool
# LinkGetEnabled
C#
public static bool LinkGetEnabled(Rid link);

Возвращает true, если указанная link включена.

Параметры
ИмяТипПо умолчанию
linkRid—
Возвращает bool
LinkGetEndPositionVector3
# LinkGetEndPosition
C#
public static Vector3 LinkGetEndPosition(Rid link);

Возвращает конечную позицию link.

Параметры
ИмяТипПо умолчанию
linkRid—
Возвращает Vector3
LinkGetEnterCostfloat
# LinkGetEnterCost
C#
public static float LinkGetEnterCost(Rid link);

Возвращает входную стоимость этого link.

Параметры
ИмяТипПо умолчанию
linkRid—
Возвращает float
LinkGetIterationIduint
# LinkGetIterationId
C#
public static uint LinkGetIterationId(Rid link);

Возвращает текущий идентификатор итерации навигационной ссылки. Каждый раз, когда навигационная ссылка изменяется и синхронизируется, идентификатор итерации увеличивается. Идентификатор итерации 0 означает, что навигационная ссылка никогда не синхронизировалась. Примечание: Идентификатор итерации вернется к 1 после достижения предела диапазона.

Параметры
ИмяТипПо умолчанию
linkRid—
Возвращает uint
LinkGetMapRid
# LinkGetMap
C#
public static Rid LinkGetMap(Rid link);

Возвращает навигационную карту Rid, которой в данный момент назначена запрошенная link.

Параметры
ИмяТипПо умолчанию
linkRid—
Возвращает Rid
LinkGetNavigationLayersuint
# LinkGetNavigationLayers
C#
public static uint LinkGetNavigationLayers(Rid link);

Возвращает слои навигации для этого link.

Параметры
ИмяТипПо умолчанию
linkRid—
Возвращает uint
LinkGetOwnerIdulong
# LinkGetOwnerId
C#
public static ulong LinkGetOwnerId(Rid link);

Возвращает ObjectID объекта, который управляет этой ссылкой.

Параметры
ИмяТипПо умолчанию
linkRid—
Возвращает ulong
LinkGetStartPositionVector3
# LinkGetStartPosition
C#
public static Vector3 LinkGetStartPosition(Rid link);

Возвращает начальную позицию этого link.

Параметры
ИмяТипПо умолчанию
linkRid—
Возвращает Vector3
LinkGetTravelCostfloat
# LinkGetTravelCost
C#
public static float LinkGetTravelCost(Rid link);

Возвращает стоимость поездки по этому link.

Параметры
ИмяТипПо умолчанию
linkRid—
Возвращает float
LinkIsBidirectionalbool
# LinkIsBidirectional
C#
public static bool LinkIsBidirectional(Rid link);

Возвращает, можно ли перемещаться по link в обоих направлениях.

Параметры
ИмяТипПо умолчанию
linkRid—
Возвращает bool
LinkSetBidirectionalvoid
# LinkSetBidirectional
C#
public static void LinkSetBidirectional(Rid link, bool bidirectional);

Устанавливает, можно ли перемещаться по этой link в обоих направлениях.

Параметры
ИмяТипПо умолчанию
linkRid—
bidirectionalbool—
LinkSetEnabledvoid
# LinkSetEnabled
C#
public static void LinkSetEnabled(Rid link, bool enabled);

Если enabled имеет значение true, указанная link будет добавлена к текущей навигационной карте.

Параметры
ИмяТипПо умолчанию
linkRid—
enabledbool—
LinkSetEndPositionvoid
# LinkSetEndPosition
C#
public static void LinkSetEndPosition(Rid link, Vector3 position);

Устанавливает позицию выхода для link.

Параметры
ИмяТипПо умолчанию
linkRid—
positionVector3—
LinkSetEnterCostvoid
# LinkSetEnterCost
C#
public static void LinkSetEnterCost(Rid link, float enterCost);

Устанавливает enter_cost для этого link.

Параметры
ИмяТипПо умолчанию
linkRid—
enterCostfloat—
LinkSetMapvoid
# LinkSetMap
C#
public static void LinkSetMap(Rid link, Rid map);

Устанавливает навигационную карту Rid для ссылки.

Параметры
ИмяТипПо умолчанию
linkRid—
mapRid—
LinkSetNavigationLayersvoid
# LinkSetNavigationLayers
C#
public static void LinkSetNavigationLayers(Rid link, uint navigationLayers);

Устанавливает данные linkНавигационные слои: navigation_layers. Это позволяет выбирать ссылки из запроса пути (при использовании NavigationServer3D.MapGetPath).

Параметры
ИмяТипПо умолчанию
linkRid—
navigationLayersuint—
LinkSetOwnerIdvoid
# LinkSetOwnerId
C#
public static void LinkSetOwnerId(Rid link, ulong ownerId);

Установите ObjectID объекта, который управляет этой ссылкой.

Параметры
ИмяТипПо умолчанию
linkRid—
ownerIdulong—
LinkSetStartPositionvoid
# LinkSetStartPosition
C#
public static void LinkSetStartPosition(Rid link, Vector3 position);

Устанавливает позицию входа для этого link.

Параметры
ИмяТипПо умолчанию
linkRid—
positionVector3—
LinkSetTravelCostvoid
# LinkSetTravelCost
C#
public static void LinkSetTravelCost(Rid link, float travelCost);

Устанавливает travel_cost для этого link.

Параметры
ИмяТипПо умолчанию
linkRid—
travelCostfloat—
MapCreateRid
# MapCreate
C#
public static Rid MapCreate();

Создаёт отдельную навигационную карту без геометрии. Владелец должен включить обработку, добавить регионы, дождаться публикации и позднее освободить карту через FreeRid.

Возвращает Rid

RID новой карты, а не региона или Entity. Не подменяйте им объект другой размерности.

MapForceUpdatevoid · Устарело
# MapForceUpdate
C#
public static void MapForceUpdate(Rid map);

Данная функция обеспечивает незамедлительную синхронизацию конкретного судоходства map RidПо умолчанию навигационные карты синхронизируются только в конце каждой физики. Эта функция может быть использована для немедленной (перерасчета) обработки всех навигационных смычек и региональных соединений навигационной карты, что позволяет немедленно и в одном и том же раме найти навигационную траекторию изменения карты (в случае необходимости несколько раз). Из-за технических ограничений будет спущена очередь команды WailwayServer. Это означает, что будут выполнены все уже поставленные команды обновления для этой физики, даже те, которые предназначены для других карт, регионов и агентов, не входящих в указанную карту. Дорогие расчеты навигационных ячеек и региональных соединений карты будут произведены только для указанной карты. Другие карты получат нормальную синхронизацию в конце физики. Если указанная карта получит изменения после принудительного обновления, то она будет обновляться снова, а остальные карты получат их обновление. Обработка и отправка документов о расторжении сделок safe_velocity Эта функция не затрагивает сигналов, и она продолжает действовать в отношении всех карт и агентов в конце физики. Примечание: Эта функция должна использоваться только пользователями, которые действительно знают, что они делают и имеют для этого веские основания. Для немедленного обновления навигационной карты требуется заблокировать Навигационный Сервер и смыть всю командную очередь Навигационного Сервера. Это не только может серьезно повлиять на результативность игры, но также может ввести ошибки, если их использовать ненадлежащим образом без большой прозорливости.

Параметры
ИмяТипПо умолчанию
mapRid—
MapGetAgentsReckfell.Collections.Array<Rid>
# MapGetAgents
C#
public static Reckfell.Collections.Array<Rid> MapGetAgents(Rid map);

Возвращает все навигационные агенты Rids которые в настоящее время отнесены к требуемому судоходству. map.

Параметры
ИмяТипПо умолчанию
mapRid—
Возвращает Reckfell.Collections.Array<Rid>
MapGetCellHeightfloat
# MapGetCellHeight
C#
public static float MapGetCellHeight(Rid map);

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

Параметры
ИмяТипПо умолчанию
mapRid—
Возвращает float
MapGetCellSizefloat
# MapGetCellSize
C#
public static float MapGetCellSize(Rid map);

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

Параметры
ИмяТипПо умолчанию
mapRid—
Возвращает float
MapGetClosestPointVector3
# MapGetClosestPoint
C#
public static Vector3 MapGetClosestPoint(Rid map, Vector3 toPoint);

Возвращает точку поверхности навигационной сетки, ближайшую к указанному to_point на навигационной map.

Параметры
ИмяТипПо умолчанию
mapRid—
toPointVector3—
Возвращает Vector3
MapGetClosestPointNormalVector3
# MapGetClosestPointNormal
C#
public static Vector3 MapGetClosestPointNormal(Rid map, Vector3 toPoint);

Возвращает нормаль поверхности навигационной сетки, ближайшую к указанному to_point на навигационной map.

Параметры
ИмяТипПо умолчанию
mapRid—
toPointVector3—
Возвращает Vector3
MapGetClosestPointOwnerRid
# MapGetClosestPointOwner
C#
public static Rid MapGetClosestPointOwner(Rid map, Vector3 toPoint);

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

Параметры
ИмяТипПо умолчанию
mapRid—
toPointVector3—
Возвращает Rid
MapGetClosestPointToSegmentVector3
# MapGetClosestPointToSegment
C#
public static Vector3 MapGetClosestPointToSegment(Rid map, Vector3 start, Vector3 end, bool useCollision = false);

Возвращает точку поверхности сетки навигации, ближайшую к предоставленным сегментам start и end на карте навигации map. Если use_collision равно true, проверка ближайшей точки выполняется только тогда, когда сегмент пересекается с поверхностью сетки навигации.

Параметры
ИмяТипПо умолчанию
mapRid—
startVector3—
endVector3—
useCollisionboolfalse
Возвращает Vector3
MapGetEdgeConnectionMarginfloat
# MapGetEdgeConnectionMargin
C#
public static float MapGetEdgeConnectionMargin(Rid map);

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

Параметры
ИмяТипПо умолчанию
mapRid—
Возвращает float
MapGetIterationIduint
# MapGetIterationId
C#
public static uint MapGetIterationId(Rid map);

Возвращает текущий идентификатор итерации навигационной карты. Каждый раз, когда навигационная карта изменяется и синхронизируется, идентификатор итерации увеличивается. Идентификатор итерации 0 означает, что навигационная карта никогда не синхронизировалась. Примечание: Идентификатор итерации вернется к 1 после достижения предела диапазона.

Параметры
ИмяТипПо умолчанию
mapRid—
Возвращает uint
MapGetLinkConnectionRadiusfloat
# MapGetLinkConnectionRadius
C#
public static float MapGetLinkConnectionRadius(Rid map);

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

Параметры
ИмяТипПо умолчанию
mapRid—
Возвращает float
MapGetLinksReckfell.Collections.Array<Rid>
# MapGetLinks
C#
public static Reckfell.Collections.Array<Rid> MapGetLinks(Rid map);

Возвращает все навигационные ссылки Rid-ов, которые в данный момент назначены запрошенной навигационной карте map.

Параметры
ИмяТипПо умолчанию
mapRid—
Возвращает Reckfell.Collections.Array<Rid>
MapGetMergeRasterizerCellScalefloat
# MapGetMergeRasterizerCellScale
C#
public static float MapGetMergeRasterizerCellScale(Rid map);

Возвращает внутренний масштаб клеточной шкалы рестеризатора.

Параметры
ИмяТипПо умолчанию
mapRid—
Возвращает float
MapGetObstaclesReckfell.Collections.Array<Rid>
# MapGetObstacles
C#
public static Reckfell.Collections.Array<Rid> MapGetObstacles(Rid map);

Возвращает все навигационные препятствия Rid-ов, которые в данный момент назначены запрошенной навигационной карте map.

Параметры
ИмяТипПо умолчанию
mapRid—
Возвращает Reckfell.Collections.Array<Rid>
MapGetPathVector3[]
# MapGetPath
C#
public static Vector3[] MapGetPath(Rid map, Vector3 origin, Vector3 destination, bool optimize, uint navigationLayers = 1);

Выполняет прямой запрос точек пути по опубликованной карте. Непустой результат может быть частичным или иметь спроецированные старт/цель; проверяйте оба конца. Массив сам не перемещает персонажа и не обновляется при изменении карты.

Параметры
ИмяТипПо умолчанию
mapRid—
originVector3—
destinationVector3—
optimizebool—
navigationLayersuint1
map

RID живой навигационной карты этой размерности с опубликованной геометрией.

origin

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

destination

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

optimize

true использует Corridorfunnel внутри найденного коридора; false — Edgecentered. Не отключает A* и не гарантирует меньшую стоимость вычисления.

navigationLayers

Маска допустимых слоёв регионов и связей; по умолчанию 1. Слой N — бит 1u << (N - 1).

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

Массив Vector3[] с точками маршрута; пуст при отсутствии подходящего пути. Наличие точек не гарантирует достижение исходной цели или физически безопасное движение.

MapGetRandomPointVector3
# MapGetRandomPoint
C#
public static Vector3 MapGetRandomPoint(Rid map, uint navigationLayers, bool uniformly);

Возвращает случайную позицию, выбранную из всех полигонов области карты с соответствующими navigation_layers. Если uniformly равен true, все области карты, полигоны и грани взвешиваются по площади их поверхности (медленнее). Если uniformly равен false, выбираются только случайная область и случайный полигон (быстрее).

Параметры
ИмяТипПо умолчанию
mapRid—
navigationLayersuint—
uniformlybool—
Возвращает Vector3
MapGetRegionsReckfell.Collections.Array<Rid>
# MapGetRegions
C#
public static Reckfell.Collections.Array<Rid> MapGetRegions(Rid map);

Возвращает все навигационные области Rids которые в настоящее время отнесены к требуемому судоходству. map.

Параметры
ИмяТипПо умолчанию
mapRid—
Возвращает Reckfell.Collections.Array<Rid>
MapGetUpVector3
# MapGetUp
C#
public static Vector3 MapGetUp(Rid map);

Возвращает направление вверх карты.

Параметры
ИмяТипПо умолчанию
mapRid—
Возвращает Vector3
MapGetUseAsyncIterationsbool
# MapGetUseAsyncIterations
C#
public static bool MapGetUseAsyncIterations(Rid map);

Возвращает true, если синхронизация map использует асинхронный процесс, работающий в фоновом потоке.

Параметры
ИмяТипПо умолчанию
mapRid—
Возвращает bool
MapGetUseEdgeConnectionsbool
# MapGetUseEdgeConnections
C#
public static bool MapGetUseEdgeConnections(Rid map);

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

Параметры
ИмяТипПо умолчанию
mapRid—
Возвращает bool
MapIsActivebool
# MapIsActive
C#
public static bool MapIsActive(Rid map);

Возвращает true, если карта активна.

Параметры
ИмяТипПо умолчанию
mapRid—
Возвращает bool
MapSetActivevoid
# MapSetActive
C#
public static void MapSetActive(Rid map, bool active);

Включает или отключает участие карты в обработке сервером. false не запрещает прямые запросы к уже опубликованной навигации: это проверено в установленной сборке. Для паузы персонажа управляйте его игровой логикой.

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

RID карты соответствующего NavigationServer.

active

true добавляет карту в обработку; false убирает из неё. Это не флаг разрешения поиска пути.

MapSetCellHeightvoid
# MapSetCellHeight
C#
public static void MapSetCellHeight(Rid map, float cellHeight);

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

Параметры
ИмяТипПо умолчанию
mapRid—
cellHeightfloat—
MapSetCellSizevoid
# MapSetCellSize
C#
public static void MapSetCellSize(Rid map, float cellSize);

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

Параметры
ИмяТипПо умолчанию
mapRid—
cellSizefloat—
MapSetEdgeConnectionMarginvoid
# MapSetEdgeConnectionMargin
C#
public static void MapSetEdgeConnectionMargin(Rid map, float margin);

Установите границу соединения краев карты, используемую для склеивания краев совместимых регионов.

Параметры
ИмяТипПо умолчанию
mapRid—
marginfloat—
MapSetLinkConnectionRadiusvoid
# MapSetLinkConnectionRadius
C#
public static void MapSetLinkConnectionRadius(Rid map, float radius);

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

Параметры
ИмяТипПо умолчанию
mapRid—
radiusfloat—
MapSetMergeRasterizerCellScalevoid
# MapSetMergeRasterizerCellScale
C#
public static void MapSetMergeRasterizerCellScale(Rid map, float scale);

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

Параметры
ИмяТипПо умолчанию
mapRid—
scalefloat—
MapSetUpvoid
# MapSetUp
C#
public static void MapSetUp(Rid map, Vector3 up);

Устанавливает направление карты вверх.

Параметры
ИмяТипПо умолчанию
mapRid—
upVector3—
MapSetUseAsyncIterationsvoid
# MapSetUseAsyncIterations
C#
public static void MapSetUseAsyncIterations(Rid map, bool enabled);

Если enabled имеет значение true, то синхронизация map использует асинхронный процесс, который выполняется в фоновом потоке.

Параметры
ИмяТипПо умолчанию
mapRid—
enabledbool—
MapSetUseEdgeConnectionsvoid
# MapSetUseEdgeConnections
C#
public static void MapSetUseEdgeConnections(Rid map, bool enabled);

Установите использование краевого соединения навигации map. Если enabled равно true, навигационная карта позволяет навигационным регионам использовать краевые соединения для соединения с другими навигационными регионами в непосредственной близости от границы краевого соединения навигационной карты.

Параметры
ИмяТипПо умолчанию
mapRid—
enabledbool—
ObstacleCreateRid
# ObstacleCreate
C#
public static Rid ObstacleCreate();

Создает новое препятствие (obstacle).

Возвращает Rid
ObstacleGetAvoidanceEnabledbool
# ObstacleGetAvoidanceEnabled
C#
public static bool ObstacleGetAvoidanceEnabled(Rid obstacle);

Возвращает true, если для предоставленного obstacle включено уклонение.

Параметры
ИмяТипПо умолчанию
obstacleRid—
Возвращает bool
ObstacleGetAvoidanceLayersuint
# ObstacleGetAvoidanceLayers
C#
public static uint ObstacleGetAvoidanceLayers(Rid obstacle);

Возвращает битовую маску avoidance_layers указанного obstacle.

Параметры
ИмяТипПо умолчанию
obstacleRid—
Возвращает uint
ObstacleGetHeightfloat
# ObstacleGetHeight
C#
public static float ObstacleGetHeight(Rid obstacle);

Возвращает height указанного obstacle.

Параметры
ИмяТипПо умолчанию
obstacleRid—
Возвращает float
ObstacleGetMapRid
# ObstacleGetMap
C#
public static Rid ObstacleGetMap(Rid obstacle);

Возвращает навигационную карту Rid, которой в данный момент назначен запрошенный obstacle.

Параметры
ИмяТипПо умолчанию
obstacleRid—
Возвращает Rid
ObstacleGetPausedbool
# ObstacleGetPaused
C#
public static bool ObstacleGetPaused(Rid obstacle);

Возвращает true, если указанное obstacle приостановлено.

Параметры
ИмяТипПо умолчанию
obstacleRid—
Возвращает bool
ObstacleGetPositionVector3
# ObstacleGetPosition
C#
public static Vector3 ObstacleGetPosition(Rid obstacle);

Возвращает положение указанного obstacle в мировом пространстве.

Параметры
ИмяТипПо умолчанию
obstacleRid—
Возвращает Vector3
ObstacleGetRadiusfloat
# ObstacleGetRadius
C#
public static float ObstacleGetRadius(Rid obstacle);

Возвращает радиус указанного динамического obstacle.

Параметры
ИмяТипПо умолчанию
obstacleRid—
Возвращает float
ObstacleGetUse3DAvoidancebool
# ObstacleGetUse3DAvoidance
C#
public static bool ObstacleGetUse3DAvoidance(Rid obstacle);

Возвращает true, если указанный obstacle использует избегание в трехмерном пространстве Vector3(x,y,z) вместо горизонтального 2D Vector2(x,y) / Vector3(x,0.0,z).

Параметры
ИмяТипПо умолчанию
obstacleRid—
Возвращает bool
ObstacleGetVelocityVector3
# ObstacleGetVelocity
C#
public static Vector3 ObstacleGetVelocity(Rid obstacle);

Возвращает скорость указанного динамического obstacle.

Параметры
ИмяТипПо умолчанию
obstacleRid—
Возвращает Vector3
ObstacleGetVerticesVector3[]
# ObstacleGetVertices
C#
public static Vector3[] ObstacleGetVertices(Rid obstacle);

Возвращает вершины контура для указанного obstacle.

Параметры
ИмяТипПо умолчанию
obstacleRid—
Возвращает Vector3[]
ObstacleSetAvoidanceEnabledvoid
# ObstacleSetAvoidanceEnabled
C#
public static void ObstacleSetAvoidanceEnabled(Rid obstacle, bool enabled);

Если enabled имеет значение true, предоставленный obstacle влияет на избегание с помощью агентов.

Параметры
ИмяТипПо умолчанию
obstacleRid—
enabledbool—
ObstacleSetAvoidanceLayersvoid
# ObstacleSetAvoidanceLayers
C#
public static void ObstacleSetAvoidanceLayers(Rid obstacle, uint layers);

Устанавливает данные obstacleСлои избегания layers.

Параметры
ИмяТипПо умолчанию
obstacleRid—
layersuint—
ObstacleSetHeightvoid
# ObstacleSetHeight
C#
public static void ObstacleSetHeight(Rid obstacle, float height);

Устанавливает height для obstacle. В 3D агенты будут игнорировать препятствия, которые находятся выше или ниже них, используя 2D-избегание.

Параметры
ИмяТипПо умолчанию
obstacleRid—
heightfloat—
ObstacleSetMapvoid
# ObstacleSetMap
C#
public static void ObstacleSetMap(Rid obstacle, Rid map);

Назначает obstacle навигационной карте.

Параметры
ИмяТипПо умолчанию
obstacleRid—
mapRid—
ObstacleSetPausedvoid
# ObstacleSetPaused
C#
public static void ObstacleSetPaused(Rid obstacle, bool paused);

Если paused равно true, то указанный obstacle не будет обработан. Например, он больше не будет влиять на скорость уклонения.

Параметры
ИмяТипПо умолчанию
obstacleRid—
pausedbool—
ObstacleSetPositionvoid
# ObstacleSetPosition
C#
public static void ObstacleSetPosition(Rid obstacle, Vector3 position);

Обновляет position в мировом пространстве для obstacle.

Параметры
ИмяТипПо умолчанию
obstacleRid—
positionVector3—
ObstacleSetRadiusvoid
# ObstacleSetRadius
C#
public static void ObstacleSetRadius(Rid obstacle, float radius);

Устанавливает радиус динамического препятствия.

Параметры
ИмяТипПо умолчанию
obstacleRid—
radiusfloat—
ObstacleSetUse3DAvoidancevoid
# ObstacleSetUse3DAvoidance
C#
public static void ObstacleSetUse3DAvoidance(Rid obstacle, bool enabled);

Устанавливает, использует ли obstacle 2D-обход или 3D-обход, если включен режим обхода.

Параметры
ИмяТипПо умолчанию
obstacleRid—
enabledbool—
ObstacleSetVelocityvoid
# ObstacleSetVelocity
C#
public static void ObstacleSetVelocity(Rid obstacle, Vector3 velocity);

Устанавливает velocity для динамического obstacle. Позволяет другим агентам лучше предсказывать движение динамического препятствия. Работает только в сочетании с радиусом препятствия.

Параметры
ИмяТипПо умолчанию
obstacleRid—
velocityVector3—
ObstacleSetVertices2 перегрузки
# ObstacleSetVertices · 1/2
C#
public static void ObstacleSetVertices(Rid obstacle, Vector3[] vertices);

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

Параметры
ИмяТипПо умолчанию
obstacleRid—
verticesVector3[]—
# ObstacleSetVertices · 2/2
C#
public static void ObstacleSetVertices(Rid obstacle, ReadOnlySpan<Vector3> vertices);

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

Параметры
ИмяТипПо умолчанию
obstacleRid—
verticesReadOnlySpan<Vector3>—
ParseSourceGeometryDatavoid
# ParseSourceGeometryData
C#
public static void ParseSourceGeometryData(NavigationMesh navigationMesh, NavigationMeshSourceGeometryData3D sourceGeometryData, Entity rootEntity, Callable callback = default);

Протестую. EntityTree для геометрии источника в зависимости от свойств navigation_mesh:: Обновление представленной информации source_geometry_data Затем этот ресурс может быть использован для испечки навигационной сетки с помощью NavigationServer3D.BakeFromSourceGeometryData. После завершения процесса факультативная callback будет позвонили. Примечание: Эта функция должна функционировать по основному направлению или с отсрочкой вызова в качестве EntityTree - Это не безопасно для нити. Performance: Удобно читать массивы данных из Mesh Данные должны быть получены от ГПС, что затормозило бы процесс пересмотра. RenderingServer Для целей эффективности предпочтение отдается использованию, например, формы столкновения или созданию сетей данных полностью в коде.

Параметры
ИмяТипПо умолчанию
navigationMeshNavigationMesh—
sourceGeometryDataNavigationMeshSourceGeometryData3D—
rootEntityEntity—
callbackCallabledefault
QueryPath2 перегрузки
# QueryPath · 1/2
C#
public static void QueryPath(NavigationPathQueryParameters3D parameters, NavigationPathQueryResult3D result);

Запрашивает путь в заданной навигационной карте. Начальная и конечная позиция, а также другие параметры определяются через NavigationPathQueryParameters3D. Обновляет предоставленный объект результата NavigationPathQueryResult3D путем среди других результатов, запрошенных запросом. После завершения процесса будет вызван необязательный callback.

Параметры
ИмяТипПо умолчанию
parametersNavigationPathQueryParameters3D—
resultNavigationPathQueryResult3D—
# QueryPath · 2/2
C#
public static void QueryPath(NavigationPathQueryParameters3D parameters, NavigationPathQueryResult3D result, Callable callback = default);

Запрашивает путь в заданной навигационной карте. Начальная и конечная позиция, а также другие параметры определяются через NavigationPathQueryParameters3D. Обновляет предоставленный объект результата NavigationPathQueryResult3D путем среди других результатов, запрошенных запросом. После завершения процесса будет вызван необязательный callback.

Параметры
ИмяТипПо умолчанию
parametersNavigationPathQueryParameters3D—
resultNavigationPathQueryResult3D—
callbackCallabledefault
RegionBakeNavigationMeshvoid · Устарело
# RegionBakeNavigationMesh
C#
public static void RegionBakeNavigationMesh(NavigationMesh navigationMesh, Entity rootEntity);

Запачкает navigation_mesh с геометрией источника печенья, собранной начиная с root_node.

Параметры
ИмяТипПо умолчанию
navigationMeshNavigationMesh—
rootEntityEntity—
RegionCreateRid
# RegionCreate
C#
public static Rid RegionCreate();

Создает новый регион.

Возвращает Rid
RegionGetBoundsAabb
# RegionGetBounds
C#
public static Aabb RegionGetBounds(Rid region);

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

Параметры
ИмяТипПо умолчанию
regionRid—
Возвращает Aabb
RegionGetClosestPointVector3
# RegionGetClosestPoint
C#
public static Vector3 RegionGetClosestPoint(Rid region, Vector3 toPoint);

Возвращает точку поверхности навигационной сетки, ближайшую к указанному to_point в навигационной region.

Параметры
ИмяТипПо умолчанию
regionRid—
toPointVector3—
Возвращает Vector3
RegionGetClosestPointNormalVector3
# RegionGetClosestPointNormal
C#
public static Vector3 RegionGetClosestPointNormal(Rid region, Vector3 toPoint);

Возвращает нормаль поверхности навигационной сетки, ближайшую к указанному to_point в навигационной region.

Параметры
ИмяТипПо умолчанию
regionRid—
toPointVector3—
Возвращает Vector3
RegionGetClosestPointToSegmentVector3
# RegionGetClosestPointToSegment
C#
public static Vector3 RegionGetClosestPointToSegment(Rid region, Vector3 start, Vector3 end, bool useCollision = false);

Возвращает точку поверхности сетки навигации, ближайшую к предоставленным сегментам start и end в навигационной области region. Если use_collision равно true, проверка ближайшей точки выполняется только тогда, когда сегмент пересекается с поверхностью сетки навигации.

Параметры
ИмяТипПо умолчанию
regionRid—
startVector3—
endVector3—
useCollisionboolfalse
Возвращает Vector3
RegionGetConnectionPathwayEndVector3
# RegionGetConnectionPathwayEnd
C#
public static Vector3 RegionGetConnectionPathwayEnd(Rid region, int connection);

Возвращает конечную точку соединения. connection — это индекс между 0 и возвращаемым значением NavigationServer3D.RegionGetConnectionsCount.

Параметры
ИмяТипПо умолчанию
regionRid—
connectionint—
Возвращает Vector3
RegionGetConnectionPathwayStartVector3
# RegionGetConnectionPathwayStart
C#
public static Vector3 RegionGetConnectionPathwayStart(Rid region, int connection);

Возвращает начальную точку соединения. connection — это индекс между 0 и возвращаемым значением NavigationServer3D.RegionGetConnectionsCount.

Параметры
ИмяТипПо умолчанию
regionRid—
connectionint—
Возвращает Vector3
RegionGetConnectionsCountint
# RegionGetConnectionsCount
C#
public static int RegionGetConnectionsCount(Rid region);

Возвращает количество связей этого region с другими регионами на карте.

Параметры
ИмяТипПо умолчанию
regionRid—
Возвращает int
RegionGetEnabledbool
# RegionGetEnabled
C#
public static bool RegionGetEnabled(Rid region);

Возвращает true, если указанный region включен.

Параметры
ИмяТипПо умолчанию
regionRid—
Возвращает bool
RegionGetEnterCostfloat
# RegionGetEnterCost
C#
public static float RegionGetEnterCost(Rid region);

Возвращает стоимость входа для этого region.

Параметры
ИмяТипПо умолчанию
regionRid—
Возвращает float
RegionGetIterationIduint
# RegionGetIterationId
C#
public static uint RegionGetIterationId(Rid region);

Возвращает текущий идентификатор итерации региона навигации. Каждый раз, когда регион навигации изменяется и синхронизируется, идентификатор итерации увеличивается. Идентификатор итерации 0 означает, что регион навигации никогда не синхронизировался. Примечание: Идентификатор итерации вернется к 1 после достижения предела диапазона.

Параметры
ИмяТипПо умолчанию
regionRid—
Возвращает uint
RegionGetMapRid
# RegionGetMap
C#
public static Rid RegionGetMap(Rid region);

Возвращает навигационную карту Rid, которой в данный момент назначен запрошенный region.

Параметры
ИмяТипПо умолчанию
regionRid—
Возвращает Rid
RegionGetNavigationLayersuint
# RegionGetNavigationLayers
C#
public static uint RegionGetNavigationLayers(Rid region);

Возвращает навигационные слои региона.

Параметры
ИмяТипПо умолчанию
regionRid—
Возвращает uint
RegionGetOwnerIdulong
# RegionGetOwnerId
C#
public static ulong RegionGetOwnerId(Rid region);

Возвращает ObjectID объекта, который управляет этим регионом.

Параметры
ИмяТипПо умолчанию
regionRid—
Возвращает ulong
RegionGetRandomPointVector3
# RegionGetRandomPoint
C#
public static Vector3 RegionGetRandomPoint(Rid region, uint navigationLayers, bool uniformly);

Возвращает случайную позицию, выбранную из всех полигонов региона с соответствующим navigation_layers. Если uniformly равен true, все полигоны региона и грани взвешиваются по площади их поверхности (медленнее). Если uniformly равен false, выбираются только случайный полигон и грань (быстрее).

Параметры
ИмяТипПо умолчанию
regionRid—
navigationLayersuint—
uniformlybool—
Возвращает Vector3
RegionGetTransformTransform3D
# RegionGetTransform
C#
public static Transform3D RegionGetTransform(Rid region);

Возвращает глобальное преобразование этого region.

Параметры
ИмяТипПо умолчанию
regionRid—
Возвращает Transform3D
RegionGetTravelCostfloat
# RegionGetTravelCost
C#
public static float RegionGetTravelCost(Rid region);

Возвращает стоимость поездки в этом region.

Параметры
ИмяТипПо умолчанию
regionRid—
Возвращает float
RegionGetUseAsyncIterationsbool
# RegionGetUseAsyncIterations
C#
public static bool RegionGetUseAsyncIterations(Rid region);

Возвращает true, если region использует асинхронный процесс синхронизации, работающий в фоновом потоке.

Параметры
ИмяТипПо умолчанию
regionRid—
Возвращает bool
RegionGetUseEdgeConnectionsbool
# RegionGetUseEdgeConnections
C#
public static bool RegionGetUseEdgeConnections(Rid region);

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

Параметры
ИмяТипПо умолчанию
regionRid—
Возвращает bool
RegionOwnsPointbool
# RegionOwnsPoint
C#
public static bool RegionOwnsPoint(Rid region, Vector3 point);

Возвращает true, если предоставленная point в мировом пространстве в настоящее время принадлежит предоставленной навигации region. Владение в этом контексте означает, что одна из граней полигонов сетки навигации региона имеет возможное положение на самом близком расстоянии к этой точке по сравнению со всеми другими сетками навигации из других регионов навигации, которые также зарегистрированы на навигационной карте предоставленного региона. Если несколько сеток навигации имеют положения на равном расстоянии, то навигационная область, полигоны которой обрабатываются первой, выигрывает право собственности. Полигоны обрабатываются в том же порядке, в котором навигационные области были зарегистрированы на NavigationServer. Примечание: Если навигационные сетки из разных регионов навигации перекрываются (чего следует избегать в целом), результат может оказаться не таким, как ожидалось.

Параметры
ИмяТипПо умолчанию
regionRid—
pointVector3—
Возвращает bool
RegionSetEnabledvoid
# RegionSetEnabled
C#
public static void RegionSetEnabled(Rid region, bool enabled);

Если enabled имеет значение true, указанный region будет добавлен к его текущей навигационной карте.

Параметры
ИмяТипПо умолчанию
regionRid—
enabledbool—
RegionSetEnterCostvoid
# RegionSetEnterCost
C#
public static void RegionSetEnterCost(Rid region, float enterCost);

Устанавливает enter_cost для этого region.

Параметры
ИмяТипПо умолчанию
regionRid—
enterCostfloat—
RegionSetMapvoid
# RegionSetMap
C#
public static void RegionSetMap(Rid region, Rid map);

Устанавливает карту региона.

Параметры
ИмяТипПо умолчанию
regionRid—
mapRid—
RegionSetNavigationLayersvoid
# RegionSetNavigationLayers
C#
public static void RegionSetNavigationLayers(Rid region, uint navigationLayers);

Установить навигационные слои региона. Это позволяет выбирать регионы из запроса пути (при использовании NavigationServer3D.MapGetPath).

Параметры
ИмяТипПо умолчанию
regionRid—
navigationLayersuint—
RegionSetNavigationMeshvoid
# RegionSetNavigationMesh
C#
public static void RegionSetNavigationMesh(Rid region, NavigationMesh navigationMesh);

Устанавливает навигационную сетку для региона.

Параметры
ИмяТипПо умолчанию
regionRid—
navigationMeshNavigationMesh—
RegionSetOwnerIdvoid
# RegionSetOwnerId
C#
public static void RegionSetOwnerId(Rid region, ulong ownerId);

Установите ObjectID объекта, который управляет этим регионом.

Параметры
ИмяТипПо умолчанию
regionRid—
ownerIdulong—
RegionSetTransformvoid
# RegionSetTransform
C#
public static void RegionSetTransform(Rid region, Transform3D transform);

Устанавливает глобальную трансформацию для региона.

Параметры
ИмяТипПо умолчанию
regionRid—
transformTransform3D—
RegionSetTravelCostvoid
# RegionSetTravelCost
C#
public static void RegionSetTravelCost(Rid region, float travelCost);

Устанавливает travel_cost для этого region.

Параметры
ИмяТипПо умолчанию
regionRid—
travelCostfloat—
RegionSetUseAsyncIterationsvoid
# RegionSetUseAsyncIterations
C#
public static void RegionSetUseAsyncIterations(Rid region, bool enabled);

Если enabled равно true, то region использует асинхронный процесс синхронизации, который выполняется в фоновом потоке.

Параметры
ИмяТипПо умолчанию
regionRid—
enabledbool—
RegionSetUseEdgeConnectionsvoid
# RegionSetUseEdgeConnections
C#
public static void RegionSetUseEdgeConnections(Rid region, bool enabled);

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

Параметры
ИмяТипПо умолчанию
regionRid—
enabledbool—
SetActivevoid
# SetActive
C#
public static void SetActive(bool active);

Control активация этого сервера.

Параметры
ИмяТипПо умолчанию
activebool—
SetDebugEnabledvoid
# SetDebugEnabled
C#
public static void SetDebugEnabled(bool enabled);

Переключает флаг в сборке с DEBUG_ENABLED и откладывает уведомление об изменении. Без этой опции тело переключателя не выполняется. Не создаёт отображение произвольных серверных RID.

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

true для включения, false для выключения. Для временной диагностики сохраните и восстановите исходное значение.

SimplifyPath2 перегрузки
# SimplifyPath · 1/2
C#
public static Vector3[] SimplifyPath(Vector3[] path, float epsilon);

Возвращает упрощенную версию path Удаление менее критических точек пути. epsilonВ упрощении используется вариант алгоритма Ramer-Duglas-Peuker для уничтожения кривых точек. Упрощение путей может быть полезным для смягчения различных последствий в связи с проблемами, которые могут возникнуть при определенных типах агентов и поведении сценария.

Параметры
ИмяТипПо умолчанию
pathVector3[]—
epsilonfloat—
Возвращает Vector3[]
# SimplifyPath · 2/2
C#
public static Vector3[] SimplifyPath(ReadOnlySpan<Vector3> path, float epsilon);

Возвращает упрощенную версию path Удаление менее критических точек пути. epsilonВ упрощении используется вариант алгоритма Ramer-Duglas-Peuker для уничтожения кривых точек. Упрощение путей может быть полезным для смягчения различных последствий в связи с проблемами, которые могут возникнуть при определенных типах агентов и поведении сценария.

Параметры
ИмяТипПо умолчанию
pathReadOnlySpan<Vector3>—
epsilonfloat—
Возвращает Vector3[]
SourceGeometryParserCreateRid
# SourceGeometryParserCreate
C#
public static Rid SourceGeometryParserCreate();

Создает новый источник парсера геометрии. Если Callable установлен для парсера с NavigationServer3D.SourceGeometryParserSetCallback, обратный вызов будет вызван для каждого отдельного узла, который анализируется всякий раз, когда используется NavigationServer3D.ParseSourceGeometryData.

Возвращает Rid
SourceGeometryParserSetCallbackvoid
# SourceGeometryParserSetCallback
C#
public static void SourceGeometryParserSetCallback(Rid parser, Callable callback);

Устанавливает callback Callable для конкретной исходной геометрии parser. Callable получит вызов со следующими параметрами:

  • navigation_mesh - Ссылка NavigationMesh, используемая для определения настроек анализа. НЕ редактируйте и не добавляйте напрямую в навигационную сетку.
  • source_geometry_data - Ссылка NavigationMeshSourceGeometryData3D. Добавьте пользовательскую исходную геометрию для запекания навигационной сетки в этот объект.
  • node - Entity, который анализируется.
Параметры
ИмяТипПо умолчанию
parserRid—
callbackCallable—

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

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

Выдается при изменении настроек отладки избегания. Доступно только в отладочных сборках.

MapChangedСобытие
# MapChanged
C#
public static event NavigationServer3D.MapChangedEventHandler MapChanged;

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

Параметры обработчика
ИмяТипПо умолчанию
mapRid—
NavigationDebugChangedСобытие
# NavigationDebugChanged
C#
public static event Action NavigationDebugChanged;

Выдается при изменении настроек отладки навигации. Доступно только в отладочных сборках.

NavigationServer3D.ProcessInfo

ЗначениеОписание
ActiveMaps = 0

Константа для получения количества активных навигационных карт.

AgentCount = 2

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

EdgeConnectionCount = 7

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

EdgeCount = 5

Константа для получения количества ребер полигона навигационной сетки.

EdgeFreeCount = 8

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

EdgeMergeCount = 6

Константа для получения количества ребер полигонов навигационной сетки, которые были объединены из-за перекрытия ключей ребер.

LinkCount = 3

Константа для получения количества активных навигационных ссылок.

ObstacleCount = 9

Константа для получения количества активных навигационных препятствий.

PolygonCount = 4

Константа для получения количества полигонов навигационной сетки.

RegionCount = 1

Константа для получения количества активных навигационных регионов.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

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

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

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