NavigationServer3D
Серверный интерфейс для низкоуровневого доступа к 3D-навигации.
Серверный интерфейс для низкоуровневого доступа к 3D-навигации.
NavigationServer3D - сервер, который обрабатывает навигационные карты, области и агенты. AStar3D.
Карты делятся на регионы, которые состоят из навигационных ячеек. Вместе они определяют судоходные зоны в мире 3D.
Примечание: Большинство NavigationServer3D Изменения вступают в силу после следующей физики, а не сразу, включая все изменения, внесенные в карты, регионы или агенты навигационными узлами на дереве сцены или с помощью сценариев.
Для того чтобы два региона были соединены друг с другом, они должны иметь аналогичный край. edge_connection_margin на вершину другого края.
Вы можете отправить навигационные слои в регионы с NavigationServer3D.RegionSetNavigationLayers, которые затем могут быть проверены при запрашивании пути с NavigationServer3D.MapGetPath. Это может быть использовано для того, чтобы разрешить или исключить определенные области для некоторых объектов.
Для использования системы предотвращения столкновений вы можете использовать агенты. Вы можете установить целевую скорость агента, а затем серверы излучают звонок с модифицированной скоростью.
Примечание: Система предотвращения столкновения игнорирует регионы. Использование модифицированной скорости напрямую может переместить агент за пределы зоны, в которой происходит столкновение. Это ограничение системы предупреждения столкновения, и любая более сложная ситуация может потребовать использования двигателя физики.
Этот сервер хранит следы любого вызова и выполняет их в фазе синхронизации. Это означает, что вы можете запросить любое изменение карты, используя любую нить, не беспокоясь.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Свойства1
SingletonСвойство
public static NavigationServer3DInstance Singleton { get; }Методы157
AgentCreateRid
public static Rid AgentCreate();Создает агента.
RidAgentGetAvoidanceEnabledbool
public static bool AgentGetAvoidanceEnabled(Rid agent);Возвращает true, если предоставленный agent имеет включенное избегание.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
boolAgentGetAvoidanceLayersuint
public static uint AgentGetAvoidanceLayers(Rid agent);Возвращает битовую маску avoidance_layers указанного agent.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
uintAgentGetAvoidanceMaskuint
public static uint AgentGetAvoidanceMask(Rid agent);Возвращает битовую маску avoidance_mask указанного agent.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
uintAgentGetAvoidancePriorityfloat
public static float AgentGetAvoidancePriority(Rid agent);Возвращает avoidance_priority указанного agent.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
floatAgentGetHeightfloat
public static float AgentGetHeight(Rid agent);Возвращает height (высоту) указанного agent.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
floatAgentGetMapRid
public static Rid AgentGetMap(Rid agent);Возвращает Rid навигационной карты , которой в данный момент назначен запрошенный agent.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
RidAgentGetMaxNeighborsint
public static int AgentGetMaxNeighbors(Rid agent);Возвращает максимальное количество других агентов, которые указанный agent учитывает при навигации.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
intAgentGetMaxSpeedfloat
public static float AgentGetMaxSpeed(Rid agent);Возвращает максимальную скорость указанного agent.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
floatAgentGetNeighborDistancefloat
public static float AgentGetNeighborDistance(Rid agent);Возвращает максимальное расстояние до других агентов, которое указанный agent учитывает при навигации.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
floatAgentGetPausedbool
public static bool AgentGetPaused(Rid agent);Возвращает true, если указанный agent приостановлен.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
boolAgentGetPositionVector3
public static Vector3 AgentGetPosition(Rid agent);Возвращает позицию указанного agent в мировом пространстве.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
Vector3AgentGetRadiusfloat
public static float AgentGetRadius(Rid agent);Возвращает радиус указанного agent.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
floatAgentGetTimeHorizonAgentsfloat
public static float AgentGetTimeHorizonAgents(Rid agent);Возвращает минимальное количество времени, в течение которого скорости указанного agent, вычисленные при моделировании, безопасны по отношению к другим агентам.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
floatAgentGetTimeHorizonObstaclesfloat
public static float AgentGetTimeHorizonObstacles(Rid agent);Возвращает минимальное количество времени, в течение которого скорости указанного agent, вычисленные при моделировании, безопасны по отношению к статическим препятствиям для избегания.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
floatAgentGetUse3DAvoidancebool
public static bool AgentGetUse3DAvoidance(Rid agent);Возвращает true, если предоставленный agent использует избегание в трехмерном пространстве Vector3(x,y,z) вместо горизонтального 2D Vector2(x,y) / Vector3(x,0.0,z).
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
boolAgentGetVelocityVector3
public static Vector3 AgentGetVelocity(Rid agent);Возвращает скорость указанного agent.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
Vector3AgentHasAvoidanceCallbackbool
public static bool AgentHasAvoidanceCallback(Rid agent);Верните true, если указанный agent имеет обратный вызов для избегания.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
boolAgentIsMapChangedbool
public static bool AgentIsMapChanged(Rid agent);Возвращает true, если карта была изменена в предыдущем кадре.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
boolAgentSetAvoidanceCallbackvoid
public static void AgentSetAvoidanceCallback(Rid agent, Callable callback);Устанавливает обратный вызов Callable, который вызывается после каждого шага обработки избегания для agent. Вычисленный safe_velocity будет отправлен с сигналом объекту непосредственно перед физическими расчетами.
Примечание: Созданные обратные вызовы всегда обрабатываются независимо от состояния EntityTree, пока агент находится на навигационной карте и не освобожден. Чтобы отключить отправку обратного вызова от агента, снова используйте NavigationServer3D.AgentSetAvoidanceCallback с пустым Callable.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
callback | Callable | — |
AgentSetAvoidanceEnabledvoid
public static void AgentSetAvoidanceEnabled(Rid agent, bool enabled);Если enabled имеет значение true, предоставленный agent вычисляет избегание.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
enabled | bool | — |
AgentSetAvoidanceLayersvoid
public static void AgentSetAvoidanceLayers(Rid agent, uint layers);Установите битовую маску агента avoidance_layers.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
layers | uint | — |
AgentSetAvoidanceMaskvoid
public static void AgentSetAvoidanceMask(Rid agent, uint mask);Установите битовую маску avoidance_mask агента.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
mask | uint | — |
AgentSetAvoidancePriorityvoid
public static void AgentSetAvoidancePriority(Rid agent, float priority);Установите avoidance_priority агента с priority от 0,0 (самый низкий приоритет) до 1,0 (самый высокий приоритет).
Указанный agent не корректирует скорость для других агентов, которые соответствуют avoidance_mask, но имеют более низкий avoidance_priority. Это, в свою очередь, заставляет других агентов с более низким приоритетом корректировать свои скорости еще больше, чтобы избежать столкновения с этим агентом.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
priority | float | — |
AgentSetHeightvoid
public static void AgentSetHeight(Rid agent, float height);Обновляет предоставленный agent height.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
height | float | — |
AgentSetMapvoid
public static void AgentSetMap(Rid agent, Rid map);Размещает агента на карте.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
map | Rid | — |
AgentSetMaxNeighborsvoid
public static void AgentSetMaxNeighbors(Rid agent, int count);Устанавливает максимальное количество других агентов, которые агент учитывает при навигации. Чем больше это число, тем дольше время выполнения симуляции. Если число слишком мало, симуляция не будет безопасной.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
count | int | — |
AgentSetMaxSpeedvoid
public static void AgentSetMaxSpeed(Rid agent, float maxSpeed);Устанавливает максимальную скорость агента. Должна быть положительной.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
maxSpeed | float | — |
AgentSetNeighborDistancevoid
public static void AgentSetNeighborDistance(Rid agent, float distance);Устанавливает максимальное расстояние до других агентов, которое этот агент учитывает при навигации. Чем больше это число, тем дольше время выполнения симуляции. Если число слишком мало, симуляция не будет безопасной.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
distance | float | — |
AgentSetPausedvoid
public static void AgentSetPaused(Rid agent, bool paused);Если paused равно true, указанный agent не будет обработан. Например, он не будет рассчитывать скорости уклонения или получать обратные вызовы уклонения.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
paused | bool | — |
AgentSetPositionvoid
public static void AgentSetPosition(Rid agent, Vector3 position);Устанавливает положение агента в мировом пространстве.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
position | Vector3 | — |
AgentSetRadiusvoid
public static void AgentSetRadius(Rid agent, float radius);Устанавливает радиус действия агента.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
radius | float | — |
AgentSetTimeHorizonAgentsvoid
public static void AgentSetTimeHorizonAgents(Rid agent, float timeHorizon);Минимальное количество времени, в течение которого скорость агента, рассчитанная с помощью моделирования, безопасна по отношению к другим агентам. Чем больше это число, тем скорее этот агент ответит на присутствие других агентов, но чем меньше свобода выбора агентом своих скоростей. Слишком высокое значение значительно замедляет движение агента. Должно быть положительным.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
timeHorizon | float | — |
AgentSetTimeHorizonObstaclesvoid
public static void AgentSetTimeHorizonObstacles(Rid agent, float timeHorizon);Минимальное количество времени, в течение которого скорость агента, рассчитанная с помощью моделирования, безопасна с точки зрения статических препятствий, препятствующих избежанию. Чем больше это число, тем раньше этот агент будет реагировать на наличие статических препятствий, но чем меньше свобода этого агента при выборе скорости. Слишком высокая величина значительно замедляет движение агента.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
timeHorizon | float | — |
AgentSetUse3DAvoidancevoid
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-избежании.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
enabled | bool | — |
AgentSetVelocityvoid
public static void AgentSetVelocity(Rid agent, Vector3 velocity);Комплекты velocity как новая требуемая скорость для указанного agentВ случае телепортации агента на новое место, расположенное далеко от него, его следует использовать. NavigationServer3D.AgentSetVelocityForced вместо этого перезагрузить состояние внутренней скорости.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
velocity | Vector3 | — |
AgentSetVelocityForcedvoid
public static void AgentSetVelocityForced(Rid agent, Vector3 velocity);Заменяет внутреннюю скорость в моделировании избегания столкновений на velocity для указанного agent. Когда агент телепортируется в новое положение, эта функция должна использоваться в том же кадре. При частом вызове эта функция может привести к застреванию агентов.
| Имя | Тип | По умолчанию |
|---|---|---|
agent | Rid | — |
velocity | Vector3 | — |
BakeFromSourceGeometryDatavoid
public static void BakeFromSourceGeometryData(NavigationMesh navigationMesh, NavigationMeshSourceGeometryData3D sourceGeometryData, Callable callback = default);Синхронно запекает переданные исходные данные в ресурс навигации. Не разбирает автоматически весь уровень и не назначает результат региону. Проверьте количество полигонов, затем назначьте ресурс и дождитесь публикации карты.
| Имя | Тип | По умолчанию |
|---|---|---|
navigationMesh | NavigationMesh | — |
sourceGeometryData | NavigationMeshSourceGeometryData3D | — |
callback | Callable | default |
navigationMeshРесурс результата с настроенными параметрами запекания, включая радиус и разрешение. Его содержимое изменяется вызовом.
sourceGeometryDataПодготовленные исходные данные соответствующей размерности. Пустые или неподходящие поверхности могут дать результат без полигонов.
BakeFromSourceGeometryDataAsyncvoid
public static void BakeFromSourceGeometryDataAsync(NavigationMesh navigationMesh, NavigationMeshSourceGeometryData3D sourceGeometryData, Callable callback = default);Запекает предоставленный navigation_mesh с данными из предоставленного source_geometry_data как асинхронную задачу, работающую в фоновом потоке. После завершения процесса будет вызван необязательный callback.
| Имя | Тип | По умолчанию |
|---|---|---|
navigationMesh | NavigationMesh | — |
sourceGeometryData | NavigationMeshSourceGeometryData3D | — |
callback | Callable | default |
FreeRidvoid
public static void FreeRid(Rid rid);Уничтожает указанный RID.
| Имя | Тип | По умолчанию |
|---|---|---|
rid | Rid | — |
GetDebugEnabledbool
public static bool GetDebugEnabled();Читает флаг отладки сервера. Включённый флаг не доказывает наличие видимой геометрии: штатное отображение создают соответствующие Entity с учётом дополнительных настроек.
boolТекущее значение флага; это не проверка отображения или правильности пути.
GetMapsReckfell.Collections.Array<Rid>
GetProcessInfoint
public static int GetProcessInfo(NavigationServer3D.ProcessInfo processInfo);Читает счётчик 3D-сервера. Сводка собирается по активным картам после обработки сервером, а не по всем выделенным RID. Отключённый регион остаётся в RegionCount, пока назначен активной карте. Это не измерение времени поиска.
| Имя | Тип | По умолчанию |
|---|---|---|
processInfo | NavigationServer3D.ProcessInfo | — |
processInfoВыбор счётчика: ActiveMaps, RegionCount, PolygonCount или другой элемент ProcessInfo.
intЦелое значение счётчика. Последние изменения карты могут ещё ожидать обработки.
IsBakingNavigationMeshbool
public static bool IsBakingNavigationMesh(NavigationMesh navigationMesh);Возвращает true, когда предоставленная навигационная сетка запекается в фоновом потоке.
| Имя | Тип | По умолчанию |
|---|---|---|
navigationMesh | NavigationMesh | — |
boolLinkCreateRid
public static Rid LinkCreate();Создайте новую связь (Link) между двумя позициями на карте.
RidLinkGetEnabledbool
public static bool LinkGetEnabled(Rid link);Возвращает true, если указанная link включена.
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
boolLinkGetEndPositionVector3
public static Vector3 LinkGetEndPosition(Rid link);Возвращает конечную позицию link.
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
Vector3LinkGetEnterCostfloat
public static float LinkGetEnterCost(Rid link);Возвращает входную стоимость этого link.
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
floatLinkGetIterationIduint
public static uint LinkGetIterationId(Rid link);Возвращает текущий идентификатор итерации навигационной ссылки. Каждый раз, когда навигационная ссылка изменяется и синхронизируется, идентификатор итерации увеличивается. Идентификатор итерации 0 означает, что навигационная ссылка никогда не синхронизировалась.
Примечание: Идентификатор итерации вернется к 1 после достижения предела диапазона.
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
uintLinkGetMapRid
public static Rid LinkGetMap(Rid link);Возвращает навигационную карту Rid, которой в данный момент назначена запрошенная link.
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
RidLinkGetNavigationLayersuint
public static uint LinkGetNavigationLayers(Rid link);Возвращает слои навигации для этого link.
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
uintLinkGetOwnerIdulong
public static ulong LinkGetOwnerId(Rid link);Возвращает ObjectID объекта, который управляет этой ссылкой.
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
ulongLinkGetStartPositionVector3
public static Vector3 LinkGetStartPosition(Rid link);Возвращает начальную позицию этого link.
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
Vector3LinkGetTravelCostfloat
public static float LinkGetTravelCost(Rid link);Возвращает стоимость поездки по этому link.
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
floatLinkIsBidirectionalbool
public static bool LinkIsBidirectional(Rid link);Возвращает, можно ли перемещаться по link в обоих направлениях.
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
boolLinkSetBidirectionalvoid
public static void LinkSetBidirectional(Rid link, bool bidirectional);Устанавливает, можно ли перемещаться по этой link в обоих направлениях.
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
bidirectional | bool | — |
LinkSetEnabledvoid
public static void LinkSetEnabled(Rid link, bool enabled);Если enabled имеет значение true, указанная link будет добавлена к текущей навигационной карте.
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
enabled | bool | — |
LinkSetEndPositionvoid
public static void LinkSetEndPosition(Rid link, Vector3 position);Устанавливает позицию выхода для link.
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
position | Vector3 | — |
LinkSetEnterCostvoid
public static void LinkSetEnterCost(Rid link, float enterCost);Устанавливает enter_cost для этого link.
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
enterCost | float | — |
LinkSetMapvoid
public static void LinkSetMap(Rid link, Rid map);Устанавливает навигационную карту Rid для ссылки.
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
map | Rid | — |
LinkSetNavigationLayersvoid
public static void LinkSetNavigationLayers(Rid link, uint navigationLayers);Устанавливает данные linkНавигационные слои: navigation_layers. Это позволяет выбирать ссылки из запроса пути (при использовании NavigationServer3D.MapGetPath).
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
navigationLayers | uint | — |
LinkSetOwnerIdvoid
public static void LinkSetOwnerId(Rid link, ulong ownerId);Установите ObjectID объекта, который управляет этой ссылкой.
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
ownerId | ulong | — |
LinkSetStartPositionvoid
public static void LinkSetStartPosition(Rid link, Vector3 position);Устанавливает позицию входа для этого link.
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
position | Vector3 | — |
LinkSetTravelCostvoid
public static void LinkSetTravelCost(Rid link, float travelCost);Устанавливает travel_cost для этого link.
| Имя | Тип | По умолчанию |
|---|---|---|
link | Rid | — |
travelCost | float | — |
MapCreateRid
public static Rid MapCreate();Создаёт отдельную навигационную карту без геометрии. Владелец должен включить обработку, добавить регионы, дождаться публикации и позднее освободить карту через FreeRid.
RidRID новой карты, а не региона или Entity. Не подменяйте им объект другой размерности.
MapForceUpdatevoid · Устарело
public static void MapForceUpdate(Rid map);Данная функция обеспечивает незамедлительную синхронизацию конкретного судоходства map RidПо умолчанию навигационные карты синхронизируются только в конце каждой физики. Эта функция может быть использована для немедленной (перерасчета) обработки всех навигационных смычек и региональных соединений навигационной карты, что позволяет немедленно и в одном и том же раме найти навигационную траекторию изменения карты (в случае необходимости несколько раз).
Из-за технических ограничений будет спущена очередь команды WailwayServer. Это означает, что будут выполнены все уже поставленные команды обновления для этой физики, даже те, которые предназначены для других карт, регионов и агентов, не входящих в указанную карту. Дорогие расчеты навигационных ячеек и региональных соединений карты будут произведены только для указанной карты. Другие карты получат нормальную синхронизацию в конце физики. Если указанная карта получит изменения после принудительного обновления, то она будет обновляться снова, а остальные карты получат их обновление.
Обработка и отправка документов о расторжении сделок safe_velocity Эта функция не затрагивает сигналов, и она продолжает действовать в отношении всех карт и агентов в конце физики.
Примечание: Эта функция должна использоваться только пользователями, которые действительно знают, что они делают и имеют для этого веские основания. Для немедленного обновления навигационной карты требуется заблокировать Навигационный Сервер и смыть всю командную очередь Навигационного Сервера. Это не только может серьезно повлиять на результативность игры, но также может ввести ошибки, если их использовать ненадлежащим образом без большой прозорливости.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
MapGetAgentsReckfell.Collections.Array<Rid>
public static Reckfell.Collections.Array<Rid> MapGetAgents(Rid map);Возвращает все навигационные агенты Rids которые в настоящее время отнесены к требуемому судоходству. map.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
Reckfell.Collections.Array<Rid>MapGetCellHeightfloat
public static float MapGetCellHeight(Rid map);Возвращает высоту ячейки карты, используемую для растеризации вершин навигационной сетки по оси Y.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
floatMapGetCellSizefloat
public static float MapGetCellSize(Rid map);Возвращает размер ячейки карты, используемый для растеризации вершин навигационной сетки на плоскости XZ.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
floatMapGetClosestPointVector3
public static Vector3 MapGetClosestPoint(Rid map, Vector3 toPoint);Возвращает точку поверхности навигационной сетки, ближайшую к указанному to_point на навигационной map.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
toPoint | Vector3 | — |
Vector3MapGetClosestPointNormalVector3
public static Vector3 MapGetClosestPointNormal(Rid map, Vector3 toPoint);Возвращает нормаль поверхности навигационной сетки, ближайшую к указанному to_point на навигационной map.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
toPoint | Vector3 | — |
Vector3MapGetClosestPointOwnerRid
public static Rid MapGetClosestPointOwner(Rid map, Vector3 toPoint);Возвращает область владельца RID для точки навигационной стыковой поверхности, наиболее близкой к предусмотренной to_point по вопросам судоходства map.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
toPoint | Vector3 | — |
RidMapGetClosestPointToSegmentVector3
public static Vector3 MapGetClosestPointToSegment(Rid map, Vector3 start, Vector3 end, bool useCollision = false);Возвращает точку поверхности сетки навигации, ближайшую к предоставленным сегментам start и end на карте навигации map.
Если use_collision равно true, проверка ближайшей точки выполняется только тогда, когда сегмент пересекается с поверхностью сетки навигации.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
start | Vector3 | — |
end | Vector3 | — |
useCollision | bool | false |
Vector3MapGetEdgeConnectionMarginfloat
public static float MapGetEdgeConnectionMargin(Rid map);Возвращает границу соединения ребер карты. Это расстояние является минимальным расстоянием между вершинами, необходимым для соединения двух ребер из разных регионов.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
floatMapGetIterationIduint
public static uint MapGetIterationId(Rid map);Возвращает текущий идентификатор итерации навигационной карты. Каждый раз, когда навигационная карта изменяется и синхронизируется, идентификатор итерации увеличивается. Идентификатор итерации 0 означает, что навигационная карта никогда не синхронизировалась. Примечание: Идентификатор итерации вернется к 1 после достижения предела диапазона.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
uintMapGetLinkConnectionRadiusfloat
public static float MapGetLinkConnectionRadius(Rid map);Возвращает радиус соединения ссылок карты. Это расстояние является максимальным диапазоном, в котором любая ссылка будет искать полигоны навигационной сетки для соединения.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
floatMapGetLinksReckfell.Collections.Array<Rid>
public static Reckfell.Collections.Array<Rid> MapGetLinks(Rid map);Возвращает все навигационные ссылки Rid-ов, которые в данный момент назначены запрошенной навигационной карте map.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
Reckfell.Collections.Array<Rid>MapGetMergeRasterizerCellScalefloat
public static float MapGetMergeRasterizerCellScale(Rid map);Возвращает внутренний масштаб клеточной шкалы рестеризатора.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
floatMapGetObstaclesReckfell.Collections.Array<Rid>
public static Reckfell.Collections.Array<Rid> MapGetObstacles(Rid map);Возвращает все навигационные препятствия Rid-ов, которые в данный момент назначены запрошенной навигационной карте map.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
Reckfell.Collections.Array<Rid>MapGetPathVector3[]
public static Vector3[] MapGetPath(Rid map, Vector3 origin, Vector3 destination, bool optimize, uint navigationLayers = 1);Выполняет прямой запрос точек пути по опубликованной карте. Непустой результат может быть частичным или иметь спроецированные старт/цель; проверяйте оба конца. Массив сам не перемещает персонажа и не обновляется при изменении карты.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
origin | Vector3 | — |
destination | Vector3 | — |
optimize | bool | — |
navigationLayers | uint | 1 |
mapRID живой навигационной карты этой размерности с опубликованной геометрией.
originНачальная позиция в глобальных координатах карты; первая точка результата может быть спроецирована на доступную поверхность.
destinationЦелевая позиция в глобальных координатах карты; последняя точка может не совпасть с ней при недостижимости.
optimizetrue использует Corridorfunnel внутри найденного коридора; false — Edgecentered. Не отключает A* и не гарантирует меньшую стоимость вычисления.
navigationLayersМаска допустимых слоёв регионов и связей; по умолчанию 1. Слой N — бит 1u << (N - 1).
Vector3[]Массив Vector3[] с точками маршрута; пуст при отсутствии подходящего пути. Наличие точек не гарантирует достижение исходной цели или физически безопасное движение.
MapGetRandomPointVector3
public static Vector3 MapGetRandomPoint(Rid map, uint navigationLayers, bool uniformly);Возвращает случайную позицию, выбранную из всех полигонов области карты с соответствующими navigation_layers.
Если uniformly равен true, все области карты, полигоны и грани взвешиваются по площади их поверхности (медленнее).
Если uniformly равен false, выбираются только случайная область и случайный полигон (быстрее).
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
navigationLayers | uint | — |
uniformly | bool | — |
Vector3MapGetRegionsReckfell.Collections.Array<Rid>
public static Reckfell.Collections.Array<Rid> MapGetRegions(Rid map);Возвращает все навигационные области Rids которые в настоящее время отнесены к требуемому судоходству. map.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
Reckfell.Collections.Array<Rid>MapGetUpVector3
public static Vector3 MapGetUp(Rid map);Возвращает направление вверх карты.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
Vector3MapGetUseAsyncIterationsbool
public static bool MapGetUseAsyncIterations(Rid map);Возвращает true, если синхронизация map использует асинхронный процесс, работающий в фоновом потоке.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
boolMapGetUseEdgeConnectionsbool
public static bool MapGetUseEdgeConnections(Rid map);Возвращает true, если навигационная map позволяет навигационным регионам использовать граничные соединения для соединения с другими навигационными регионами в непосредственной близости от границы граничного соединения навигационной карты.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
boolMapIsActivebool
public static bool MapIsActive(Rid map);Возвращает true, если карта активна.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
boolMapSetActivevoid
public static void MapSetActive(Rid map, bool active);Включает или отключает участие карты в обработке сервером. false не запрещает прямые запросы к уже опубликованной навигации: это проверено в установленной сборке. Для паузы персонажа управляйте его игровой логикой.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
active | bool | — |
mapRID карты соответствующего NavigationServer.
activetrue добавляет карту в обработку; false убирает из неё. Это не флаг разрешения поиска пути.
MapSetCellHeightvoid
public static void MapSetCellHeight(Rid map, float cellHeight);Задает высоту ячейки карты, используемую для растеризации вершин навигационной сетки по оси Y. Должна совпадать с высотой ячейки используемых навигационных сеток.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
cellHeight | float | — |
MapSetCellSizevoid
public static void MapSetCellSize(Rid map, float cellSize);Устанавливает размер ячейки карты, используемый для растеризации вершин навигационной сетки на плоскости XZ. Должен совпадать с размером ячейки используемых навигационных сеток.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
cellSize | float | — |
MapSetEdgeConnectionMarginvoid
public static void MapSetEdgeConnectionMargin(Rid map, float margin);Установите границу соединения краев карты, используемую для склеивания краев совместимых регионов.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
margin | float | — |
MapSetLinkConnectionRadiusvoid
public static void MapSetLinkConnectionRadius(Rid map, float radius);Установите радиус соединения ссылок карты, используемый для соединения ссылок с навигационными полигонами.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
radius | float | — |
MapSetMergeRasterizerCellScalevoid
public static void MapSetMergeRasterizerCellScale(Rid map, float scale);Установите внутренний масштаб ячеек растеризатора слияния карты, используемый для управления чувствительностью слияния.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
scale | float | — |
MapSetUpvoid
public static void MapSetUp(Rid map, Vector3 up);Устанавливает направление карты вверх.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
up | Vector3 | — |
MapSetUseAsyncIterationsvoid
public static void MapSetUseAsyncIterations(Rid map, bool enabled);Если enabled имеет значение true, то синхронизация map использует асинхронный процесс, который выполняется в фоновом потоке.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
enabled | bool | — |
MapSetUseEdgeConnectionsvoid
public static void MapSetUseEdgeConnections(Rid map, bool enabled);Установите использование краевого соединения навигации map. Если enabled равно true, навигационная карта позволяет навигационным регионам использовать краевые соединения для соединения с другими навигационными регионами в непосредственной близости от границы краевого соединения навигационной карты.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
enabled | bool | — |
ObstacleCreateRid
public static Rid ObstacleCreate();Создает новое препятствие (obstacle).
RidObstacleGetAvoidanceEnabledbool
public static bool ObstacleGetAvoidanceEnabled(Rid obstacle);Возвращает true, если для предоставленного obstacle включено уклонение.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
boolObstacleGetAvoidanceLayersuint
public static uint ObstacleGetAvoidanceLayers(Rid obstacle);Возвращает битовую маску avoidance_layers указанного obstacle.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
uintObstacleGetHeightfloat
public static float ObstacleGetHeight(Rid obstacle);Возвращает height указанного obstacle.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
floatObstacleGetMapRid
public static Rid ObstacleGetMap(Rid obstacle);Возвращает навигационную карту Rid, которой в данный момент назначен запрошенный obstacle.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
RidObstacleGetPausedbool
public static bool ObstacleGetPaused(Rid obstacle);Возвращает true, если указанное obstacle приостановлено.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
boolObstacleGetPositionVector3
public static Vector3 ObstacleGetPosition(Rid obstacle);Возвращает положение указанного obstacle в мировом пространстве.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
Vector3ObstacleGetRadiusfloat
public static float ObstacleGetRadius(Rid obstacle);Возвращает радиус указанного динамического obstacle.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
floatObstacleGetUse3DAvoidancebool
public static bool ObstacleGetUse3DAvoidance(Rid obstacle);Возвращает true, если указанный obstacle использует избегание в трехмерном пространстве Vector3(x,y,z) вместо горизонтального 2D Vector2(x,y) / Vector3(x,0.0,z).
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
boolObstacleGetVelocityVector3
public static Vector3 ObstacleGetVelocity(Rid obstacle);Возвращает скорость указанного динамического obstacle.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
Vector3ObstacleGetVerticesVector3[]
public static Vector3[] ObstacleGetVertices(Rid obstacle);Возвращает вершины контура для указанного obstacle.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
Vector3[]ObstacleSetAvoidanceEnabledvoid
public static void ObstacleSetAvoidanceEnabled(Rid obstacle, bool enabled);Если enabled имеет значение true, предоставленный obstacle влияет на избегание с помощью агентов.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
enabled | bool | — |
ObstacleSetAvoidanceLayersvoid
public static void ObstacleSetAvoidanceLayers(Rid obstacle, uint layers);Устанавливает данные obstacleСлои избегания layers.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
layers | uint | — |
ObstacleSetHeightvoid
public static void ObstacleSetHeight(Rid obstacle, float height);Устанавливает height для obstacle. В 3D агенты будут игнорировать препятствия, которые находятся выше или ниже них, используя 2D-избегание.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
height | float | — |
ObstacleSetMapvoid
public static void ObstacleSetMap(Rid obstacle, Rid map);Назначает obstacle навигационной карте.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
map | Rid | — |
ObstacleSetPausedvoid
public static void ObstacleSetPaused(Rid obstacle, bool paused);Если paused равно true, то указанный obstacle не будет обработан. Например, он больше не будет влиять на скорость уклонения.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
paused | bool | — |
ObstacleSetPositionvoid
public static void ObstacleSetPosition(Rid obstacle, Vector3 position);Обновляет position в мировом пространстве для obstacle.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
position | Vector3 | — |
ObstacleSetRadiusvoid
public static void ObstacleSetRadius(Rid obstacle, float radius);Устанавливает радиус динамического препятствия.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
radius | float | — |
ObstacleSetUse3DAvoidancevoid
public static void ObstacleSetUse3DAvoidance(Rid obstacle, bool enabled);Устанавливает, использует ли obstacle 2D-обход или 3D-обход, если включен режим обхода.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
enabled | bool | — |
ObstacleSetVelocityvoid
public static void ObstacleSetVelocity(Rid obstacle, Vector3 velocity);Устанавливает velocity для динамического obstacle. Позволяет другим агентам лучше предсказывать движение динамического препятствия. Работает только в сочетании с радиусом препятствия.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
velocity | Vector3 | — |
ObstacleSetVertices2 перегрузки
public static void ObstacleSetVertices(Rid obstacle, Vector3[] vertices);Устанавливает вершины контура для препятствия. Если вершины закручены по часовой стрелке, агенты будут вталкиваться препятствием, в противном случае они будут выталкиваться.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
vertices | Vector3[] | — |
public static void ObstacleSetVertices(Rid obstacle, ReadOnlySpan<Vector3> vertices);Устанавливает вершины контура для препятствия. Если вершины закручены по часовой стрелке, агенты будут вталкиваться препятствием, в противном случае они будут выталкиваться.
| Имя | Тип | По умолчанию |
|---|---|---|
obstacle | Rid | — |
vertices | ReadOnlySpan<Vector3> | — |
ParseSourceGeometryDatavoid
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 Для целей эффективности предпочтение отдается использованию, например, формы столкновения или созданию сетей данных полностью в коде.
| Имя | Тип | По умолчанию |
|---|---|---|
navigationMesh | NavigationMesh | — |
sourceGeometryData | NavigationMeshSourceGeometryData3D | — |
rootEntity | Entity | — |
callback | Callable | default |
QueryPath2 перегрузки
public static void QueryPath(NavigationPathQueryParameters3D parameters, NavigationPathQueryResult3D result);Запрашивает путь в заданной навигационной карте. Начальная и конечная позиция, а также другие параметры определяются через NavigationPathQueryParameters3D. Обновляет предоставленный объект результата NavigationPathQueryResult3D путем среди других результатов, запрошенных запросом. После завершения процесса будет вызван необязательный callback.
| Имя | Тип | По умолчанию |
|---|---|---|
parameters | NavigationPathQueryParameters3D | — |
result | NavigationPathQueryResult3D | — |
public static void QueryPath(NavigationPathQueryParameters3D parameters, NavigationPathQueryResult3D result, Callable callback = default);Запрашивает путь в заданной навигационной карте. Начальная и конечная позиция, а также другие параметры определяются через NavigationPathQueryParameters3D. Обновляет предоставленный объект результата NavigationPathQueryResult3D путем среди других результатов, запрошенных запросом. После завершения процесса будет вызван необязательный callback.
| Имя | Тип | По умолчанию |
|---|---|---|
parameters | NavigationPathQueryParameters3D | — |
result | NavigationPathQueryResult3D | — |
callback | Callable | default |
RegionBakeNavigationMeshvoid · Устарело
public static void RegionBakeNavigationMesh(NavigationMesh navigationMesh, Entity rootEntity);Запачкает navigation_mesh с геометрией источника печенья, собранной начиная с root_node.
| Имя | Тип | По умолчанию |
|---|---|---|
navigationMesh | NavigationMesh | — |
rootEntity | Entity | — |
RegionCreateRid
public static Rid RegionCreate();Создает новый регион.
RidRegionGetBoundsAabb
public static Aabb RegionGetBounds(Rid region);Возвращает выровненный по осям ограничивающий прямоугольник для преобразованной навигационной сетки region.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
AabbRegionGetClosestPointVector3
public static Vector3 RegionGetClosestPoint(Rid region, Vector3 toPoint);Возвращает точку поверхности навигационной сетки, ближайшую к указанному to_point в навигационной region.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
toPoint | Vector3 | — |
Vector3RegionGetClosestPointNormalVector3
public static Vector3 RegionGetClosestPointNormal(Rid region, Vector3 toPoint);Возвращает нормаль поверхности навигационной сетки, ближайшую к указанному to_point в навигационной region.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
toPoint | Vector3 | — |
Vector3RegionGetClosestPointToSegmentVector3
public static Vector3 RegionGetClosestPointToSegment(Rid region, Vector3 start, Vector3 end, bool useCollision = false);Возвращает точку поверхности сетки навигации, ближайшую к предоставленным сегментам start и end в навигационной области region.
Если use_collision равно true, проверка ближайшей точки выполняется только тогда, когда сегмент пересекается с поверхностью сетки навигации.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
start | Vector3 | — |
end | Vector3 | — |
useCollision | bool | false |
Vector3RegionGetConnectionPathwayEndVector3
public static Vector3 RegionGetConnectionPathwayEnd(Rid region, int connection);Возвращает конечную точку соединения. connection — это индекс между 0 и возвращаемым значением NavigationServer3D.RegionGetConnectionsCount.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
connection | int | — |
Vector3RegionGetConnectionPathwayStartVector3
public static Vector3 RegionGetConnectionPathwayStart(Rid region, int connection);Возвращает начальную точку соединения. connection — это индекс между 0 и возвращаемым значением NavigationServer3D.RegionGetConnectionsCount.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
connection | int | — |
Vector3RegionGetConnectionsCountint
public static int RegionGetConnectionsCount(Rid region);Возвращает количество связей этого region с другими регионами на карте.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
intRegionGetEnabledbool
public static bool RegionGetEnabled(Rid region);Возвращает true, если указанный region включен.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
boolRegionGetEnterCostfloat
public static float RegionGetEnterCost(Rid region);Возвращает стоимость входа для этого region.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
floatRegionGetIterationIduint
public static uint RegionGetIterationId(Rid region);Возвращает текущий идентификатор итерации региона навигации. Каждый раз, когда регион навигации изменяется и синхронизируется, идентификатор итерации увеличивается. Идентификатор итерации 0 означает, что регион навигации никогда не синхронизировался.
Примечание: Идентификатор итерации вернется к 1 после достижения предела диапазона.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
uintRegionGetMapRid
public static Rid RegionGetMap(Rid region);Возвращает навигационную карту Rid, которой в данный момент назначен запрошенный region.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
RidRegionGetNavigationLayersuint
public static uint RegionGetNavigationLayers(Rid region);Возвращает навигационные слои региона.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
uintRegionGetOwnerIdulong
public static ulong RegionGetOwnerId(Rid region);Возвращает ObjectID объекта, который управляет этим регионом.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
ulongRegionGetRandomPointVector3
public static Vector3 RegionGetRandomPoint(Rid region, uint navigationLayers, bool uniformly);Возвращает случайную позицию, выбранную из всех полигонов региона с соответствующим navigation_layers.
Если uniformly равен true, все полигоны региона и грани взвешиваются по площади их поверхности (медленнее).
Если uniformly равен false, выбираются только случайный полигон и грань (быстрее).
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
navigationLayers | uint | — |
uniformly | bool | — |
Vector3RegionGetTransformTransform3D
public static Transform3D RegionGetTransform(Rid region);Возвращает глобальное преобразование этого region.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
Transform3DRegionGetTravelCostfloat
public static float RegionGetTravelCost(Rid region);Возвращает стоимость поездки в этом region.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
floatRegionGetUseAsyncIterationsbool
public static bool RegionGetUseAsyncIterations(Rid region);Возвращает true, если region использует асинхронный процесс синхронизации, работающий в фоновом потоке.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
boolRegionGetUseEdgeConnectionsbool
public static bool RegionGetUseEdgeConnections(Rid region);Возвращает true, если навигационный region настроен на использование краевых соединений для соединения с другими навигационными регионами в непосредственной близости от границы краевого соединения навигационной карты.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
boolRegionOwnsPointbool
public static bool RegionOwnsPoint(Rid region, Vector3 point);Возвращает true, если предоставленная point в мировом пространстве в настоящее время принадлежит предоставленной навигации region. Владение в этом контексте означает, что одна из граней полигонов сетки навигации региона имеет возможное положение на самом близком расстоянии к этой точке по сравнению со всеми другими сетками навигации из других регионов навигации, которые также зарегистрированы на навигационной карте предоставленного региона.
Если несколько сеток навигации имеют положения на равном расстоянии, то навигационная область, полигоны которой обрабатываются первой, выигрывает право собственности. Полигоны обрабатываются в том же порядке, в котором навигационные области были зарегистрированы на NavigationServer.
Примечание: Если навигационные сетки из разных регионов навигации перекрываются (чего следует избегать в целом), результат может оказаться не таким, как ожидалось.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
point | Vector3 | — |
boolRegionSetEnabledvoid
public static void RegionSetEnabled(Rid region, bool enabled);Если enabled имеет значение true, указанный region будет добавлен к его текущей навигационной карте.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
enabled | bool | — |
RegionSetEnterCostvoid
public static void RegionSetEnterCost(Rid region, float enterCost);Устанавливает enter_cost для этого region.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
enterCost | float | — |
RegionSetMapvoid
public static void RegionSetMap(Rid region, Rid map);Устанавливает карту региона.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
map | Rid | — |
RegionSetNavigationLayersvoid
public static void RegionSetNavigationLayers(Rid region, uint navigationLayers);Установить навигационные слои региона. Это позволяет выбирать регионы из запроса пути (при использовании NavigationServer3D.MapGetPath).
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
navigationLayers | uint | — |
RegionSetNavigationMeshvoid
public static void RegionSetNavigationMesh(Rid region, NavigationMesh navigationMesh);Устанавливает навигационную сетку для региона.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
navigationMesh | NavigationMesh | — |
RegionSetOwnerIdvoid
public static void RegionSetOwnerId(Rid region, ulong ownerId);Установите ObjectID объекта, который управляет этим регионом.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
ownerId | ulong | — |
RegionSetTransformvoid
public static void RegionSetTransform(Rid region, Transform3D transform);Устанавливает глобальную трансформацию для региона.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
transform | Transform3D | — |
RegionSetTravelCostvoid
public static void RegionSetTravelCost(Rid region, float travelCost);Устанавливает travel_cost для этого region.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
travelCost | float | — |
RegionSetUseAsyncIterationsvoid
public static void RegionSetUseAsyncIterations(Rid region, bool enabled);Если enabled равно true, то region использует асинхронный процесс синхронизации, который выполняется в фоновом потоке.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
enabled | bool | — |
RegionSetUseEdgeConnectionsvoid
public static void RegionSetUseEdgeConnections(Rid region, bool enabled);Если enabled имеет значение true, навигационный region будет использовать граничные соединения для соединения с другими навигационными областями в непосредственной близости от границы граничного соединения навигационной карты.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rid | — |
enabled | bool | — |
SetActivevoid
public static void SetActive(bool active);Control активация этого сервера.
| Имя | Тип | По умолчанию |
|---|---|---|
active | bool | — |
SetDebugEnabledvoid
public static void SetDebugEnabled(bool enabled);Переключает флаг в сборке с DEBUG_ENABLED и откладывает уведомление об изменении. Без этой опции тело переключателя не выполняется. Не создаёт отображение произвольных серверных RID.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledtrue для включения, false для выключения. Для временной диагностики сохраните и восстановите исходное значение.
SimplifyPath2 перегрузки
public static Vector3[] SimplifyPath(Vector3[] path, float epsilon);Возвращает упрощенную версию path Удаление менее критических точек пути. epsilonВ упрощении используется вариант алгоритма Ramer-Duglas-Peuker для уничтожения кривых точек.
Упрощение путей может быть полезным для смягчения различных последствий в связи с проблемами, которые могут возникнуть при определенных типах агентов и поведении сценария.
| Имя | Тип | По умолчанию |
|---|---|---|
path | Vector3[] | — |
epsilon | float | — |
Vector3[]public static Vector3[] SimplifyPath(ReadOnlySpan<Vector3> path, float epsilon);Возвращает упрощенную версию path Удаление менее критических точек пути. epsilonВ упрощении используется вариант алгоритма Ramer-Duglas-Peuker для уничтожения кривых точек.
Упрощение путей может быть полезным для смягчения различных последствий в связи с проблемами, которые могут возникнуть при определенных типах агентов и поведении сценария.
| Имя | Тип | По умолчанию |
|---|---|---|
path | ReadOnlySpan<Vector3> | — |
epsilon | float | — |
Vector3[]SourceGeometryParserCreateRid
public static Rid SourceGeometryParserCreate();Создает новый источник парсера геометрии. Если Callable установлен для парсера с NavigationServer3D.SourceGeometryParserSetCallback, обратный вызов будет вызван для каждого отдельного узла, который анализируется всякий раз, когда используется NavigationServer3D.ParseSourceGeometryData.
RidSourceGeometryParserSetCallbackvoid
public static void SourceGeometryParserSetCallback(Rid parser, Callable callback);Устанавливает callback Callable для конкретной исходной геометрии parser. Callable получит вызов со следующими параметрами:
navigation_mesh- СсылкаNavigationMesh, используемая для определения настроек анализа. НЕ редактируйте и не добавляйте напрямую в навигационную сетку.source_geometry_data- СсылкаNavigationMeshSourceGeometryData3D. Добавьте пользовательскую исходную геометрию для запекания навигационной сетки в этот объект.node-Entity, который анализируется.
| Имя | Тип | По умолчанию |
|---|---|---|
parser | Rid | — |
callback | Callable | — |
Сигналы и события3
AvoidanceDebugChangedСобытие
public static event Action AvoidanceDebugChanged;Выдается при изменении настроек отладки избегания. Доступно только в отладочных сборках.
MapChangedСобытие
public static event NavigationServer3D.MapChangedEventHandler MapChanged;Выдается при обновлении навигационной карты, при перемещении или изменении региона.
| Имя | Тип | По умолчанию |
|---|---|---|
map | Rid | — |
NavigationDebugChangedСобытие
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 | Константа для получения количества активных навигационных регионов. |