reckfellENGINE

NavigationObstacle3D

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

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

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

Для корректной работы препятствию необходимо определить навигационную карту и контур NavigationObstacle3D.Vertices. Контуры не могут пересекаться или накладываться друг на друга и ограничены проекцией плоскости. Это означает, что ось Y вершин игнорируется, вместо этого для размещения используется глобальная позиция препятствия по оси Y. Спроецированная форма выдавливается высотой препятствия вдоль оси Y. Препятствия могут быть включены в процесс запекания навигационной сетки, когда включен NavigationObstacle3D.AffectNavigationMesh. Они не добавляют проходимую геометрию, вместо этого их роль заключается в отбрасывании другой исходной геометрии внутри формы. Это можно использовать для предотвращения появления навигационной сетки в нежелательных местах, например, внутри "сплошной" геометрии или поверх нее. Если включен NavigationObstacle3D.CarveNavigationMesh, запеченная форма не будет затронута смещениями запекания навигационной сетки, например, радиусом агента. С NavigationObstacle3D.AvoidanceEnabled препятствие может ограничивать скорости избегания агентов избегания. Если вершины препятствия закручены по часовой стрелке, агенты избегания будут вдавленны препятствием, в противном случае агенты избегания будут вытолкнуты. Препятствия, использующие вершины и избегание, могут деформироваться в новое положение, но не должны перемещаться в каждом кадре, поскольку каждое изменение требует перестройки карты избегания.

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

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

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

Свойства9

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

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

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

Если true, препятствие влияет на избегание с помощью агентов.

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

Битовое поле, определяющее слои избегания для этого препятствия. Агенты с соответствующим битом в маске избегания будут избегать этого препятствия.

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

Если включено, вершины препятствий будут вырезаны в запеченной навигационной сетке с формой, не затронутой дополнительными смещениями (например, радиусом агента). На нее по-прежнему будет влиять дальнейшая постобработка процесса запекания, например упрощение ребер и полигонов. Требуется включение NavigationObstacle3D.AffectNavigationMesh.

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

Устанавливает высоту препятствия, используемую при 2D избежании. 2D избегание с использованием агентов игнорирует препятствия, которые ниже или выше.

Радиус

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

Устанавливает радиус обхода препятствия.

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

Если true препятствие влияет на 3D уклонение с использованием агентов с препятствиями NavigationObstacle3D.Radius. Если false b) препятствие влияет на 2D уклонение с использованием агентов, имеющих оба препятствия; NavigationObstacle3D.Vertices а также препятствия NavigationObstacle3D.Radius.

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

Запрашиваемая скорость препятствия, которая используется другими агентами для более точного прогнозирования препятствия, если она регулярно двигается со скоростью (каждый кадр), а не в новой позиции. Примечание: Это имущество влияет только на уклонение от препятствий NavigationObstacle3D.RadiusНичего не делает для статических вершин препятствия.

VerticesСвойство
# Vertices
C#
public Vector3[] Vertices { get; set; }

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

Методы24

GetAffectNavigationMeshbool
# GetAffectNavigationMesh
C#
public bool GetAffectNavigationMesh();
Возвращает bool
GetAvoidanceEnabledbool
# GetAvoidanceEnabled
C#
public bool GetAvoidanceEnabled();
Возвращает bool
GetAvoidanceLayerValuebool
# GetAvoidanceLayerValue
C#
public bool GetAvoidanceLayerValue(int layerNumber);

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

Параметры
ИмяТипПо умолчанию
layerNumberint—
Возвращает bool
GetAvoidanceLayersuint
# GetAvoidanceLayers
C#
public uint GetAvoidanceLayers();
Возвращает uint
GetCarveNavigationMeshbool
# GetCarveNavigationMesh
C#
public bool GetCarveNavigationMesh();
Возвращает bool
GetHeightfloat
# GetHeight
C#
public float GetHeight();
Возвращает float
GetNavigationMapRid
# GetNavigationMap
C#
public Rid GetNavigationMap();

Возвращает Rid навигационной карты для этого узла NavigationObstacle. Эта функция всегда возвращает набор карт на узле NavigationObstacle, а не карту абстрактного препятствия на NavigationServer. Если карта препятствий изменяется напрямую с помощью API Навигационный Сервер, узел NavigationObstacle не будет знать об изменении карты. Используйте NavigationObstacle3D.SetNavigationMap, чтобы изменить навигационную карту для NavigationObstacle, а также обновить препятствие на NavigationServer.

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

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

Возвращает Rid
GetUse3DAvoidancebool
# GetUse3DAvoidance
C#
public bool GetUse3DAvoidance();
Возвращает bool
GetVelocityVector3
# GetVelocity
C#
public Vector3 GetVelocity();
Возвращает Vector3
GetVerticesVector3[]
# GetVertices
C#
public Vector3[] GetVertices();
Возвращает Vector3[]
SetAffectNavigationMeshvoid
# SetAffectNavigationMesh
C#
public void SetAffectNavigationMesh(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetAvoidanceEnabledvoid
# SetAvoidanceEnabled
C#
public void SetAvoidanceEnabled(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetAvoidanceLayerValuevoid
# SetAvoidanceLayerValue
C#
public void SetAvoidanceLayerValue(int layerNumber, bool value);

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

Параметры
ИмяТипПо умолчанию
layerNumberint—
valuebool—
SetAvoidanceLayersvoid
# SetAvoidanceLayers
C#
public void SetAvoidanceLayers(uint layers);
Параметры
ИмяТипПо умолчанию
layersuint—
SetCarveNavigationMeshvoid
# SetCarveNavigationMesh
C#
public void SetCarveNavigationMesh(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetHeightvoid
# SetHeight
C#
public void SetHeight(float height);
Параметры
ИмяТипПо умолчанию
heightfloat—
SetNavigationMapvoid
# SetNavigationMap
C#
public void SetNavigationMap(Rid navigationMap);

Устанавливает Rid навигационной карты, которую должен использовать этот узел NavigationObstacle, а также обновляет obstacle на NavigationServer.

Параметры
ИмяТипПо умолчанию
navigationMapRid—
SetRadiusvoid
# SetRadius
C#
public void SetRadius(float radius);
Параметры
ИмяТипПо умолчанию
radiusfloat—
SetUse3DAvoidancevoid
# SetUse3DAvoidance
C#
public void SetUse3DAvoidance(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetVelocityvoid
# SetVelocity
C#
public void SetVelocity(Vector3 velocity);
Параметры
ИмяТипПо умолчанию
velocityVector3—
SetVertices2 перегрузки
# SetVertices · 1/2
C#
public void SetVertices(Vector3[] vertices);
Параметры
ИмяТипПо умолчанию
verticesVector3[]—
# SetVertices · 2/2
C#
public void SetVertices(ReadOnlySpan<Vector3> vertices);
Параметры
ИмяТипПо умолчанию
verticesReadOnlySpan<Vector3>—
Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

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

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

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