NavigationRegion2D
Проходимая 2D-область, которую NavigationAgent2D может использовать для поиска пути.
Проходимая 2D-область, которую NavigationAgent2D может использовать для поиска пути.
Проходимая 2D-область на основе NavigationPolygon, которую NavigationAgent2Ds может использовать для поиска пути.
Два региона могут быть соединены друг с другом, если они имеют общее ребро. Вы можете установить минимальное расстояние между двумя вершинами, необходимое для соединения двух ребер, с помощью NavigationServer2D.MapSetEdgeConnectionMargin.
Примечание: Перекрытие навигационных полигонов двух регионов недостаточно для соединения двух регионов. Они должны иметь общее ребро.
Стоимость поиска пути при входе в регион из другого региона можно контролировать с помощью значения NavigationRegion2D.EnterCost.
Примечание: Это значение не добавляется к стоимости пути, если начальная позиция уже находится внутри этого региона.
Стоимость поиска пути при перемещении на расстояние внутри этого региона можно контролировать с помощью множителя NavigationRegion2D.TravelCost.
Примечание: Этот узел кэширует изменения своих свойств, поэтому если вы вносите изменения в базовый регион Rid в NavigationServer2D, они не будут отражены в свойствах этого узла.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
NavigationRegion2DКонструктор
public NavigationRegion2D();Свойства6
EnabledСвойство
public bool Enabled { get; set; }Определяет, включен или отключен NavigationRegion2D.
EnterCostСвойство
public float EnterCost { get; set; }Когда поиск путей входит в судоходную сетку этого региона из судовождения другого региона, ценность этого участка увеличивается к расстоянию пути, используемому для определения самого короткого пути.
NavigationLayersСвойство
public uint NavigationLayers { get; set; }Битовое поле, определяющее все навигационные слои, к которым принадлежит регион. Эти навигационные слои можно проверить при запросе пути с помощью NavigationServer2D.MapGetPath.
NavigationPolygonСвойство
public NavigationPolygon NavigationPolygon { get; set; }Ресурс NavigationPolygon для использования.
TravelCostСвойство
public float TravelCost { get; set; }При поиске пути внутри навигационной сетки этого региона пройденные расстояния умножаются на NavigationRegion2D.TravelCost для определения кратчайшего пути.
UseEdgeConnectionsСвойство
public bool UseEdgeConnections { get; set; }Если этот параметр включен, навигационная область будет использовать краевые соединения для соединения с другими навигационными областями, находящимися в непосредственной близости от границы краевых соединений навигационной карты.
Методы21
BakeNavigationPolygonvoid
public void BakeNavigationPolygon(bool onThread = true);Запекает NavigationPolygon. Если on_thread установлен в true (по умолчанию), запекание выполняется в отдельном потоке.
| Имя | Тип | По умолчанию |
|---|---|---|
onThread | bool | true |
GetBoundsRect2
public Rect2 GetBounds();Возвращает выровненный по осям прямоугольник для преобразованной навигационной сетки региона.
Rect2GetEnterCostfloat
public float GetEnterCost();floatGetNavigationLayerValuebool
public bool GetNavigationLayerValue(int layerNumber);Возвращает, включен ли указанный слой битовой маски NavigationRegion2D.NavigationLayers, учитывая layer_number от 1 до 32.
| Имя | Тип | По умолчанию |
|---|---|---|
layerNumber | int | — |
boolGetNavigationLayersuint
public uint GetNavigationLayers();uintGetNavigationMapRid
public Rid GetNavigationMap();Возвращает текущую навигационную карту Rid, используемую в этом регионе.
RidGetNavigationPolygonNavigationPolygon
public NavigationPolygon GetNavigationPolygon();NavigationPolygonGetRegionRidRid · Устарело
public Rid GetRegionRid();Возвращает Rid этого региона на NavigationServer2D.
RidGetRidRid
public Rid GetRid();Возвращает Rid этого региона на NavigationServer2D. В сочетании с NavigationServer2D.MapGetClosestPointOwner может использоваться для определения NavigationRegion2D, ближайшего к точке на объединенной навигационной карте.
RidGetTravelCostfloat
public float GetTravelCost();floatGetUseEdgeConnectionsbool
public bool GetUseEdgeConnections();boolIsBakingbool
public bool IsBaking();Возвращает true, когда NavigationPolygon запекается в фоновом потоке.
boolIsEnabledbool
public bool IsEnabled();boolSetEnabledvoid
public void SetEnabled(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetEnterCostvoid
public void SetEnterCost(float enterCost);| Имя | Тип | По умолчанию |
|---|---|---|
enterCost | float | — |
SetNavigationLayerValuevoid
public void SetNavigationLayerValue(int layerNumber, bool value);На основе value включает или отключает указанный слой в битовой маске NavigationRegion2D.NavigationLayers, учитывая layer_number от 1 до 32.
| Имя | Тип | По умолчанию |
|---|---|---|
layerNumber | int | — |
value | bool | — |
SetNavigationLayersvoid
public void SetNavigationLayers(uint navigationLayers);| Имя | Тип | По умолчанию |
|---|---|---|
navigationLayers | uint | — |
SetNavigationMapvoid
public void SetNavigationMap(Rid navigationMap);Устанавливает Rid навигационной карты, которую должен использовать этот регион. По умолчанию регион автоматически присоединится к навигационной карте по умолчанию World2D, поэтому эта функция требуется только для переопределения карты по умолчанию.
| Имя | Тип | По умолчанию |
|---|---|---|
navigationMap | Rid | — |
SetNavigationPolygonvoid
public void SetNavigationPolygon(NavigationPolygon navigationPolygon);| Имя | Тип | По умолчанию |
|---|---|---|
navigationPolygon | NavigationPolygon | — |
SetTravelCostvoid
public void SetTravelCost(float travelCost);| Имя | Тип | По умолчанию |
|---|---|---|
travelCost | float | — |
SetUseEdgeConnectionsvoid
public void SetUseEdgeConnections(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
Сигналы и события2
BakeFinishedСобытие
public event Action BakeFinished;Выдается после завершения операции запекания навигационного полигона.
NavigationPolygonChangedСобытие
public event Action NavigationPolygonChanged;Выдается при замене используемого навигационного полигона или при внесении изменений во внутренние компоненты текущего навигационного полигона.