reckfellENGINE

NavigationServer2D

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

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

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

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

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

Свойства1

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

Методы140

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
AgentGetMapRid
# AgentGetMap
C#
public static Rid AgentGetMap(Rid agent);

Читает серверную карту агента после обработанных назначений. До синхронизации результат может отличаться от локально назначенной карты Entity.

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

RID живого серверного агента 2D.

Возвращает Rid

RID назначенной карты либо нулевой 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
AgentGetPositionVector2
# AgentGetPosition
C#
public static Vector2 AgentGetPosition(Rid agent);

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

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает Vector2
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
AgentGetVelocityVector2
# AgentGetVelocity
C#
public static Vector2 AgentGetVelocity(Rid agent);

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

Параметры
ИмяТипПо умолчанию
agentRid—
Возвращает Vector2
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, пока агент находится на навигационной карте и не освобожден. Чтобы отключить отправку обратного вызова от агента, снова используйте NavigationServer2D.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—
AgentSetMapvoid
# AgentSetMap
C#
public static void AgentSetMap(Rid agent, Rid map);

Ставит смену карты серверного агента в очередь. Для Entity NavigationAgent2D обычно используйте её SetNavigationMap, чтобы согласовать и запросы пути, и серверную принадлежность.

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

RID живого серверного агента, а не карты, региона или Entity ID.

map

RID карты 2D. Разные карты не образуют одну общую симуляцию избегания.

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, Vector2 position);

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

Параметры
ИмяТипПо умолчанию
agentRid—
positionVector2—
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—
AgentSetVelocityvoid
# AgentSetVelocity
C#
public static void AgentSetVelocity(Rid agent, Vector2 velocity);

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

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

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

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

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

Параметры
ИмяТипПо умолчанию
navigationPolygonNavigationPolygon—
sourceGeometryDataNavigationMeshSourceGeometryData2D—
callbackCallabledefault
navigationPolygon

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

sourceGeometryData

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

BakeFromSourceGeometryDataAsyncvoid
# BakeFromSourceGeometryDataAsync
C#
public static void BakeFromSourceGeometryDataAsync(NavigationPolygon navigationPolygon, NavigationMeshSourceGeometryData2D sourceGeometryData, Callable callback = default);

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

Параметры
ИмяТипПо умолчанию
navigationPolygonNavigationPolygon—
sourceGeometryDataNavigationMeshSourceGeometryData2D—
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(NavigationServer2D.ProcessInfo processInfo);

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

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

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

Возвращает int

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

IsBakingNavigationPolygonbool
# IsBakingNavigationPolygon
C#
public static bool IsBakingNavigationPolygon(NavigationPolygon navigationPolygon);

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

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

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

Возвращает Rid

RID новой связи. Владение требует последующего FreeRid; Entity NavigationLink2D управляет своим собственным RID отдельно.

LinkGetEnabledbool
# LinkGetEnabled
C#
public static bool LinkGetEnabled(Rid link);

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

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

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

Параметры
ИмяТипПо умолчанию
linkRid—
Возвращает Vector2
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
LinkGetStartPositionVector2
# LinkGetStartPosition
C#
public static Vector2 LinkGetStartPosition(Rid link);

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

Параметры
ИмяТипПо умолчанию
linkRid—
Возвращает Vector2
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);

Разрешает или запрещает обратное прохождение связи. При false остаётся направление от стартового конца к конечному. Изменение требует публикации новой версии карты.

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

true для обоих направлений, false только для start → end.

LinkSetEnabledvoid
# LinkSetEnabled
C#
public static void LinkSetEnabled(Rid link, bool enabled);

Включает участие связи в навигации или отключает его после синхронизации. Не останавливает уже начатую анимацию или движение персонажа: этим управляет игра.

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

true для включения связи, false для исключения её перехода из новых запросов после обновления карты.

LinkSetEndPositionvoid
# LinkSetEndPosition
C#
public static void LinkSetEndPosition(Rid link, Vector2 position);

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

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

Глобальная позиция конца в координатах карты.

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);

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

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

RID живой связи, созданной этим сервером.

map

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

LinkSetNavigationLayersvoid
# LinkSetNavigationLayers
C#
public static void LinkSetNavigationLayers(Rid link, uint navigationLayers);

Задаёт маску слоёв самой связи. Запрос должен допускать и связь, и её регионы. Для регионов на слое 1 и связи на слое 2 проверена маска запроса 3; маска 1 не допускает связь.

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

Беззнаковая 32-битная маска; номер слоя N задаётся битом 1u << (N - 1), а не числом N.

LinkSetOwnerIdvoid
# LinkSetOwnerId
C#
public static void LinkSetOwnerId(Rid link, ulong ownerId);

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

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

Например, GetInstanceId() живого объекта-контроллера перехода. 0 означает отсутствие назначенного объекта-владельца.

LinkSetStartPositionvoid
# LinkSetStartPosition
C#
public static void LinkSetStartPosition(Rid link, Vector2 position);

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

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

Глобальная позиция в координатах карты. В отличие от NavigationLink2D.StartPosition это не локальная позиция Entity.

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>
MapGetCellSizefloat
# MapGetCellSize
C#
public static float MapGetCellSize(Rid map);

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

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

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

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

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

Параметры
ИмяТипПо умолчанию
mapRid—
toPointVector2—
Возвращает Rid
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>
MapGetPathVector2[]
# MapGetPath
C#
public static Vector2[] MapGetPath(Rid map, Vector2 origin, Vector2 destination, bool optimize, uint navigationLayers = 1);

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

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

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

origin

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

destination

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

optimize

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

navigationLayers

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

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

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

MapGetRandomPointVector2
# MapGetRandomPoint
C#
public static Vector2 MapGetRandomPoint(Rid map, uint navigationLayers, bool uniformly);

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

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

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

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

RID карты, список регионов которой нужен.

Возвращает Reckfell.Collections.Array<Rid>

Массив RID регионов, а не ID Entity. Может быть пустым.

MapGetUseAsyncIterationsbool
# MapGetUseAsyncIterations
C#
public static bool MapGetUseAsyncIterations(Rid map);

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

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

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

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

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

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

RID живой карты 2D.

Возвращает bool

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

MapSetActivevoid
# MapSetActive
C#
public static void MapSetActive(Rid map, bool active);

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

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

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

active

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

MapSetCellSizevoid
# MapSetCellSize
C#
public static void MapSetCellSize(Rid map, float cellSize);

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

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

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

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

RID карты, соединения которой настраиваются.

margin

Допуск в единицах карты. Чрезмерное значение может соединить нежелательные разрывы; это не разрешение физическому персонажу перепрыгнуть зазор.

MapSetLinkConnectionRadiusvoid
# MapSetLinkConnectionRadius
C#
public static void MapSetLinkConnectionRadius(Rid map, float radius);

Задаёт радиус поиска полигона около каждого конца навигационной связи на карте. Это не максимальная длина связи между концами. Без подходящего полигона рядом с одним концом полного перехода нет.

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

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

MapSetMergeRasterizerCellScalevoid
# MapSetMergeRasterizerCellScale
C#
public static void MapSetMergeRasterizerCellScale(Rid map, float scale);

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

Параметры
ИмяТипПо умолчанию
mapRid—
scalefloat—
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);

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

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

true разрешает дополнительные соединения, false отключает этот механизм после обновления карты.

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
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
ObstacleGetPositionVector2
# ObstacleGetPosition
C#
public static Vector2 ObstacleGetPosition(Rid obstacle);

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

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

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

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

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

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

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

Параметры
ИмяТипПо умолчанию
obstacleRid—
Возвращает Vector2[]
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—
ObstacleSetMapvoid
# ObstacleSetMap
C#
public static void ObstacleSetMap(Rid obstacle, Rid map);

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

Параметры
ИмяТипПо умолчанию
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, Vector2 position);

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

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

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

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

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

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

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

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

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

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

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

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

Выполняет запрос по параметрам и заменяет данные результата. Результат не отслеживает цель автоматически: для новой задачи вызовите метод снова. Карта должна существовать и быть синхронизирована; непустой путь может быть частичным.

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

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

result

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

# QueryPath · 2/2
C#
public static void QueryPath(NavigationPathQueryParameters2D parameters, NavigationPathQueryResult2D result, Callable callback = default);

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

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

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

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

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

Параметры
ИмяТипПо умолчанию
regionRid—
Возвращает Rect2

Прямоугольник границ навигационных вершин региона после применённого трансформа.

RegionGetClosestPointVector2
# RegionGetClosestPoint
C#
public static Vector2 RegionGetClosestPoint(Rid region, Vector2 toPoint);

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

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

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

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

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

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

Возвращает число дополнительных соединений региона, подготовленных картой. Используйте для диагностики margin-соединений, но не как универсальный тест достижимости: слияние через сетку и фильтры запроса требуют отдельной проверки.

Параметры
ИмяТипПо умолчанию
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);

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

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

RID живого региона 2D.

Возвращает Rid

RID назначенной карты либо нулевой RID для отсоединённого региона.

RegionGetNavigationLayersuint
# RegionGetNavigationLayers
C#
public static uint RegionGetNavigationLayers(Rid region);

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

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

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

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

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

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

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

Параметры
ИмяТипПо умолчанию
regionRid—
Возвращает Transform2D
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);

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

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

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

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

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

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

true включает регион, false исключает его из новых поисков после синхронизации.

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);

Ставит в очередь назначение региона карте. Регион принадлежит одной карте; перенос удаляет прежнюю принадлежность. Нулевой RID карты отсоединяет регион, но не освобождает его.

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

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

map

RID карты 2D либо default для отсоединения. Это не передача владения RID региона.

RegionSetNavigationLayersvoid
# RegionSetNavigationLayers
C#
public static void RegionSetNavigationLayers(Rid region, uint navigationLayers);

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

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

Устанавливает navigation_polygon для региона.

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

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

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

Задаёт размещение навигационной геометрии региона на карте. В установленном 2D-сервере проверены перенос и масштаб вершин. Трансформ не перезапекает зазор под персонажа и не переносит физическое тело автоматически.

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

Преобразование локальных навигационных вершин в пространство карты; Identity возвращает исходное размещение.

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);

Управляет участием региона в дополнительных соединениях рёбер. В проверке двух раздельных прямоугольников отключение разрывает маршрут через margin-соединение. Сетка слияния остаётся отдельным механизмом.

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

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

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 Vector2[] SimplifyPath(Vector2[] path, float epsilon);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

NavigationServer2D.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.