NavigationObstacle2D
Двумерное препятствие, используемое для воздействия на запекание навигационной сетки или ограничения скорости агентов, управляемых для избегания.
Двумерное препятствие, используемое для воздействия на запекание навигационной сетки или ограничения скорости агентов, управляемых для избегания.
Препятствие нуждается в навигационной карте и плане NavigationObstacle2D.Vertices Наброски не могут пересекаться или перекрываться.
Препятствия могут быть включены в процесс выпечки навигационной сетки, когда NavigationObstacle2D.AffectNavigationMesh Они не добавляют ходячую геометрию, вместо этого их роль заключается в удалении другой исходной геометрии внутри формы. Это может быть использовано для предотвращения появления навигационной сетки в нежелательных местах. NavigationObstacle2D.CarveNavigationMesh , позволяет выпечке не влиять на форму при пересечении навигационной сетчатки, например радиуса действия агента.
С NavigationObstacle2D.AvoidanceEnabled Препятствие может ограничить скорость уклонения от ответственности с помощью агентов. Если вершины препятствия повреждены по часовой стрелке, то агенты уклонения будут подталкиваться к преграде, в противном случае агенты уклонения будут вытесняться. Препятствия с использованием вершин и уклонения могут варпировать на новую позицию, но не должны перемещаться на каждую раму, поскольку каждое изменение требует восстановления карты предотвращения.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
NavigationObstacle2DКонструктор
public NavigationObstacle2D();Свойства7
AffectNavigationMeshСвойство
public bool AffectNavigationMesh { get; set; }Разрешает учитывать Entity препятствия при разборе исходных данных запекания. Включение не перезапекает существующий ресурс автоматически: в проверке прежний путь оставался прямым до явного запекания.
AvoidanceEnabledСвойство
public bool AvoidanceEnabled { get; set; }Включает участие препятствия в избегании на назначенной карте. Не превращает его в физическую стену и не изменяет уже запечённый путь автоматически.
AvoidanceLayersСвойство
public uint AvoidanceLayers { get; set; }Битовое поле, определяющее слои избегания для этого препятствия. Агенты с соответствующим битом в маске избегания будут избегать этого препятствия.
CarveNavigationMeshСвойство
public bool CarveNavigationMesh { get; set; }Для запекания выбирает вырезание после применения отступа под радиус агента. Контур carve не получает дополнительного радиусного зазора. Изменение флага не запускает запекание само.
RadiusСвойство
public float Radius { get; set; }Радиус динамического препятствия для избегания. При разборе запекания с AffectNavigationMesh также может участвовать в исходных данных. Не является радиусом физического коллайдера.
VelocityСвойство
public Vector2 Velocity { get; set; }Запрашиваемая скорость препятствия, которая используется другими агентами для более точного прогнозирования препятствия, если она регулярно двигается со скоростью (каждый кадр), а не в новой позиции.
Примечание: Это имущество влияет только на уклонение от препятствий NavigationObstacle2D.RadiusНичего не делает для статических вершин препятствия.
VerticesСвойство
public Vector2[] Vertices { get; set; }Вертикальные вершины препятствия. Если вершины ветряны по часовой стрелке, то агенты будут выталкиваться через препятствие, в противном случае они будут вытесняться. Контуры не могут быть пересечены или перекрываются. Если препятствие перевернуто на новое положение, агенты не могут предсказать это движение и могут попасть внутрь препятствия.
Методы20
GetAffectNavigationMeshbool
public bool GetAffectNavigationMesh();boolGetAvoidanceEnabledbool
public bool GetAvoidanceEnabled();boolGetAvoidanceLayerValuebool
public bool GetAvoidanceLayerValue(int layerNumber);Возвращается ли указанный слой NavigationObstacle2D.AvoidanceLayers Включена битмаска, при условии a layer_number от 1 до 32 лет.
| Имя | Тип | По умолчанию |
|---|---|---|
layerNumber | int | — |
boolGetAvoidanceLayersuint
public uint GetAvoidanceLayers();uintGetCarveNavigationMeshbool
public bool GetCarveNavigationMesh();boolGetNavigationMapRid
public Rid GetNavigationMap();Возвращает Rid навигационной карты для этого узла NavigationObstacle. Эта функция всегда возвращает набор карт на узле NavigationObstacle, а не карту абстрактного препятствия на NavigationServer. Если карта препятствий изменяется напрямую с помощью API Навигационный Сервер, узел NavigationObstacle не будет знать об изменении карты. Используйте NavigationObstacle2D.SetNavigationMap, чтобы изменить навигационную карту для NavigationObstacle, а также обновить препятствие на NavigationServer.
RidGetRadiusfloat
public float GetRadius();floatGetRidRid
public Rid GetRid();Возвращает Rid этого препятствия на NavigationServer2D.
RidGetVelocityVector2
public Vector2 GetVelocity();Vector2GetVerticesVector2[]
public Vector2[] GetVertices();Vector2[]SetAffectNavigationMeshvoid
public void SetAffectNavigationMesh(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetAvoidanceEnabledvoid
public void SetAvoidanceEnabled(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetAvoidanceLayerValuevoid
public void SetAvoidanceLayerValue(int layerNumber, bool value);На основе value включает или отключает указанный слой в битовой маске NavigationObstacle2D.AvoidanceLayers, учитывая layer_number от 1 до 32.
| Имя | Тип | По умолчанию |
|---|---|---|
layerNumber | int | — |
value | bool | — |
SetAvoidanceLayersvoid
public void SetAvoidanceLayers(uint layers);| Имя | Тип | По умолчанию |
|---|---|---|
layers | uint | — |
SetCarveNavigationMeshvoid
public void SetCarveNavigationMesh(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetNavigationMapvoid
public void SetNavigationMap(Rid navigationMap);Устанавливает Rid навигационной карты, которую должен использовать этот узел NavigationObstacle, а также обновляет obstacle на NavigationServer.
| Имя | Тип | По умолчанию |
|---|---|---|
navigationMap | Rid | — |
SetRadiusvoid
public void SetRadius(float radius);| Имя | Тип | По умолчанию |
|---|---|---|
radius | float | — |
SetVelocityvoid
public void SetVelocity(Vector2 velocity);| Имя | Тип | По умолчанию |
|---|---|---|
velocity | Vector2 | — |
SetVertices2 перегрузки
public void SetVertices(Vector2[] vertices);| Имя | Тип | По умолчанию |
|---|---|---|
vertices | Vector2[] | — |
public void SetVertices(ReadOnlySpan<Vector2> vertices);| Имя | Тип | По умолчанию |
|---|---|---|
vertices | ReadOnlySpan<Vector2> | — |