reckfellENGINE

NavigationRegion3D

Проходимая трехмерная область, которую NavigationAgent3D может использовать для поиска пути.

На этой странице
class NavigationRegion3DReckfellSharpНаследует Entity3D

Проходимая трехмерная область, которую NavigationAgent3D может использовать для поиска пути.

Проходимая 3D-область на основе NavigationMesh, которую NavigationAgent3Ds может использовать для поиска пути. Две области могут быть соединены друг с другом, если они имеют схожее ребро. Вы можете установить минимальное расстояние между двумя вершинами, необходимое для соединения двух ребер, с помощью NavigationServer3D.MapSetEdgeConnectionMargin. Примечание: Перекрытие навигационных сеток двух областей недостаточно для соединения двух областей. Они должны иметь схожее ребро. Стоимость входа в эту область из другой области можно контролировать с помощью значения NavigationRegion3D.EnterCost. Примечание: Это значение не добавляется к стоимости пути, если начальная позиция уже находится внутри этой области. Стоимость перемещения на расстояние внутри этой области можно контролировать с помощью множителя NavigationRegion3D.TravelCost. Примечание: Этот узел кэширует изменения своих свойств, поэтому если вы вносите изменения в базовую область Rid в NavigationServer3D, они не будут отражены в свойствах этого узла.

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

Конструкторы1

NavigationRegion3DКонструктор
# NavigationRegion3D
C#
public NavigationRegion3D();

Свойства6

EnabledСвойство
# Enabled
C#
public bool Enabled { get; set; }

Определяет, включен или отключен NavigationRegion3D.

EnterCostСвойство
# EnterCost
C#
public float EnterCost { get; set; }

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

NavigationLayersСвойство
# NavigationLayers
C#
public uint NavigationLayers { get; set; }

Битовое поле, определяющее все навигационные слои, к которым принадлежит регион. Эти навигационные слои можно проверить при запросе пути с помощью NavigationServer3D.MapGetPath.

NavigationMeshСвойство
# NavigationMesh
C#
public NavigationMesh NavigationMesh { get; set; }

Ресурс NavigationMesh для использования.

TravelCostСвойство
# TravelCost
C#
public float TravelCost { get; set; }

При поиске пути внутри навигационной сетки этого региона пройденные расстояния умножаются на NavigationRegion3D.TravelCost для определения кратчайшего пути.

UseEdgeConnectionsСвойство
# UseEdgeConnections
C#
public bool UseEdgeConnections { get; set; }

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

Методы21

BakeNavigationMeshvoid
# BakeNavigationMesh
C#
public void BakeNavigationMesh(bool onThread = true);

Выпекает NavigationMesh. Если on_thread установлен на true (по умолчанию), выпекание выполняется в отдельном потоке. Выпекание в отдельном потоке полезно, поскольку выпекание навигации — недешевая операция. После завершения оно автоматически устанавливает новый NavigationMesh. Обратите внимание, что выпекание в отдельном потоке может быть очень медленным, если геометрия анализируется из сеток, поскольку асинхронный доступ к каждой сетке подразумевает тяжелую синхронизацию. Также обратите внимание, что выпекание в отдельном потоке автоматически отключается в операционных системах, которые не могут использовать потоки (например, Web с отключенными потоками).

Параметры
ИмяТипПо умолчанию
onThreadbooltrue
GetBoundsAabb
# GetBounds
C#
public Aabb GetBounds();

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

Возвращает Aabb
GetEnterCostfloat
# GetEnterCost
C#
public float GetEnterCost();
Возвращает float
GetNavigationLayerValuebool
# GetNavigationLayerValue
C#
public bool GetNavigationLayerValue(int layerNumber);

Возвращает, включен ли указанный слой битовой маски NavigationRegion3D.NavigationLayers, учитывая layer_number от 1 до 32.

Параметры
ИмяТипПо умолчанию
layerNumberint—
Возвращает bool
GetNavigationLayersuint
# GetNavigationLayers
C#
public uint GetNavigationLayers();
Возвращает uint
GetNavigationMapRid
# GetNavigationMap
C#
public Rid GetNavigationMap();

Возвращает текущую навигационную карту Rid, используемую в этом регионе.

Возвращает Rid
GetNavigationMeshNavigationMesh
# GetNavigationMesh
C#
public NavigationMesh GetNavigationMesh();
Возвращает NavigationMesh
GetRegionRidRid · Устарело
# GetRegionRid
C#
public Rid GetRegionRid();

Возвращает Rid этого региона на NavigationServer3D.

Возвращает Rid
GetRidRid
# GetRid
C#
public Rid GetRid();

Возвращает Rid этого региона на NavigationServer3D. В сочетании с NavigationServer3D.MapGetClosestPointOwner может использоваться для определения NavigationRegion3D, ближайшего к точке на объединенной навигационной карте.

Возвращает Rid
GetTravelCostfloat
# GetTravelCost
C#
public float GetTravelCost();
Возвращает float
GetUseEdgeConnectionsbool
# GetUseEdgeConnections
C#
public bool GetUseEdgeConnections();
Возвращает bool
IsBakingbool
# IsBaking
C#
public bool IsBaking();

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

Возвращает bool
IsEnabledbool
# IsEnabled
C#
public bool IsEnabled();
Возвращает bool
SetEnabledvoid
# SetEnabled
C#
public void SetEnabled(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetEnterCostvoid
# SetEnterCost
C#
public void SetEnterCost(float enterCost);
Параметры
ИмяТипПо умолчанию
enterCostfloat—
SetNavigationLayerValuevoid
# SetNavigationLayerValue
C#
public void SetNavigationLayerValue(int layerNumber, bool value);

На основе value включает или отключает указанный слой в битовой маске NavigationRegion3D.NavigationLayers, учитывая layer_number от 1 до 32.

Параметры
ИмяТипПо умолчанию
layerNumberint—
valuebool—
SetNavigationLayersvoid
# SetNavigationLayers
C#
public void SetNavigationLayers(uint navigationLayers);
Параметры
ИмяТипПо умолчанию
navigationLayersuint—
SetNavigationMapvoid
# SetNavigationMap
C#
public void SetNavigationMap(Rid navigationMap);

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

Параметры
ИмяТипПо умолчанию
navigationMapRid—
SetNavigationMeshvoid
# SetNavigationMesh
C#
public void SetNavigationMesh(NavigationMesh navigationMesh);
Параметры
ИмяТипПо умолчанию
navigationMeshNavigationMesh—
SetTravelCostvoid
# SetTravelCost
C#
public void SetTravelCost(float travelCost);
Параметры
ИмяТипПо умолчанию
travelCostfloat—
SetUseEdgeConnectionsvoid
# SetUseEdgeConnections
C#
public void SetUseEdgeConnections(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—

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

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

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

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

Уведомляет об изменении NavigationMesh.

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

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

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

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