reckfellENGINE

Area3D

Область трехмерного пространства, которая обнаруживает другие CollisionObject3D, входящие в нее или выходящие из нее.

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

Область трехмерного пространства, которая обнаруживает другие CollisionObject3D, входящие в нее или выходящие из нее.

Area3D — это область трехмерного пространства, определяемая одним или несколькими дочерними узлами CollisionShape3D или CollisionPolygon3D. Он определяет, когда другие CollisionObject3D входят в него или выходят из него, а также отслеживает, какие объекты столкновения еще не вышли из него (т. е. какие из них перекрывают его). Этот узел также может локально изменять или переопределять физические параметры (гравитация, затухание) и направлять звук на пользовательские аудиошины. Примечание: Области и тела, созданные с помощью PhysicsServer3D, могут не взаимодействовать с Area3D так, как ожидается, и могут не испускать сигналы или не отслеживать объекты правильно. Предупреждение: Использование ConcavePolygonShape3D внутри дочернего узла CollisionShape3D этого узла (созданного, например, с помощью параметра Создать тримешское столкновение братьев и сестер в меню Mesh, которое появляется при выборе узла MeshInstance3D) может дать неожиданные результаты, поскольку эта форма столкновения полая. Если это нежелательно, ее следует разделить на несколько ConvexPolygonShape3D или примитивных форм, таких как BoxShape3D, или в некоторых случаях ее можно заменить на CollisionPolygon3D.

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

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

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

Свойства22

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

Скорость, с которой объекты прекращают вращаться в этой области. Представляет угловую скорость, потерянную в секунду. Подробнее о затухании см. ProjectSettings.physics/3d/default_angular_damp.

AngularDampSpaceOverrideСвойство
# AngularDampSpaceOverride
C#
public Area3D.SpaceOverride AngularDampSpaceOverride { get; set; }

Режим переопределения для расчетов углового демпфирования в этой области.

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

Название аудио-шины этой области.

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

Если true, аудиошина области переопределяет аудиошину по умолчанию.

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

Интенсивность гравитации области (в метрах в секунду в квадрате). Это значение умножает направление гравитации. Это полезно для изменения силы гравитации без изменения ее направления.

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

Вектор силы тяжести области (не нормализован).

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

Если true, гравитация рассчитывается из точки (задается через Area3D.GravityPointCenter). См. также Area3D.GravitySpaceOverride.

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

Если гравитация - это точка (см. Area3D.GravityPoint), в этом и будет точка притяжения.

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

Расстояние, на котором сила тяжести равна Area3D.Gravity. Например, на планете радиусом 100 метров с поверхностной гравитацией 4,0 м/с2 установить Area3D.Gravity Таким образом, на расстоянии 200 метров от центра гравитация будет составлять 1,0 м/с2 (дважды расстояние, одна/4-я гравитация), а на расстоянии 50 метров она будет 16,0 м/с2 (полурасстояние, 4× гравитация) и т.д. Вышеизложенное справедливо только в том случае, если единичное расстояние является положительным числом.

GravitySpaceOverrideСвойство
# GravitySpaceOverride
C#
public Area3D.SpaceOverride GravitySpaceOverride { get; set; }

Режим переопределения для расчетов гравитации в этой области.

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

Скорость, с которой объекты прекращают движение в этой области. Представляет собой потерю линейной скорости в секунду. Подробнее о затухании см. ProjectSettings.physics/3d/default_linear_damp.

LinearDampSpaceOverrideСвойство
# LinearDampSpaceOverride
C#
public Area3D.SpaceOverride LinearDampSpaceOverride { get; set; }

Режим переопределения для расчетов линейного затухания в этой области.

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

Если true, другие области мониторинга могут обнаружить эту область.

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

Если true, область обнаруживает входящие и выходящие из нее тела или области.

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

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

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

Степень, в которой эта область применяет реверберацию к связанному с ней аудио. Диапазон от 0 до 1 с точностью 0.1.

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

Если true, область применяет реверберацию (reverb) к связанному с ней звуку.

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

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

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

Степень, в которой реверберация этой области является равномерным эффектом. Диапазон от 0 до 1 с точностью 0.1.

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

Экспоненциальная скорость, с которой сила ветра уменьшается с расстоянием от ее источника. Примечание: Эта сила ветра применяется только к узлам SoftBody3D. Другие физические тела в настоящее время не подвержены влиянию ветра.

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

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

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

Entity3D, который используется для указания направления и источника силы ветра, специфичной для области. Направление противоположно оси z локального преобразования Entity3D, а его источник является источником локального преобразования Entity3D. Примечание: Эта сила ветра применяется только к узлам SoftBody3D. Другие физические тела в настоящее время не подвержены влиянию ветра.

Методы50

GetAngularDampfloat
# GetAngularDamp
C#
public float GetAngularDamp();
Возвращает float
GetAngularDampSpaceOverrideModeArea3D.SpaceOverride
# GetAngularDampSpaceOverrideMode
C#
public Area3D.SpaceOverride GetAngularDampSpaceOverrideMode();
Возвращает Area3D.SpaceOverride
GetAudioBusNameStringName
# GetAudioBusName
C#
public StringName GetAudioBusName();
Возвращает StringName
GetGravityfloat
# GetGravity
C#
public float GetGravity();
Возвращает float
GetGravityDirectionVector3
# GetGravityDirection
C#
public Vector3 GetGravityDirection();
Возвращает Vector3
GetGravityPointCenterVector3
# GetGravityPointCenter
C#
public Vector3 GetGravityPointCenter();
Возвращает Vector3
GetGravityPointUnitDistancefloat
# GetGravityPointUnitDistance
C#
public float GetGravityPointUnitDistance();
Возвращает float
GetGravitySpaceOverrideModeArea3D.SpaceOverride
# GetGravitySpaceOverrideMode
C#
public Area3D.SpaceOverride GetGravitySpaceOverrideMode();
Возвращает Area3D.SpaceOverride
GetLinearDampfloat
# GetLinearDamp
C#
public float GetLinearDamp();
Возвращает float
GetLinearDampSpaceOverrideModeArea3D.SpaceOverride
# GetLinearDampSpaceOverrideMode
C#
public Area3D.SpaceOverride GetLinearDampSpaceOverrideMode();
Возвращает Area3D.SpaceOverride
GetOverlappingAreasReckfell.Collections.Array<Area3D>
# GetOverlappingAreas
C#
public Reckfell.Collections.Array<Area3D> GetOverlappingAreas();

Возвращает список пересекающихся Area3Ds. Совпадающая область CollisionObject3D.CollisionLayer Должно быть, часть этой области. CollisionObject3D.CollisionMask для обнаружения. По причинам функционирования (все слияния обрабатываются одновременно) этот список модифицируется один раз на этапе физики, а не сразу после перемещения объектов.

Возвращает Reckfell.Collections.Array<Area3D>
GetOverlappingBodiesReckfell.Collections.Array<Entity3D>
# GetOverlappingBodies
C#
public Reckfell.Collections.Array<Entity3D> GetOverlappingBodies();

Возвращает обнаруженные коллизионные объекты как Entity3D; проверяйте нужный игровой тип через is. Слой объекта должен входить в маску области, а мониторинг должен быть включён. Список обновляется на шаге физики, не немедленно после создания или перемещения. Если условие реакции зависит от изменяющегося состояния внутри уже существующего пересечения, проверка списка может быть нужна и после первоначального BodyEntered().

Возвращает Reckfell.Collections.Array<Entity3D>
GetPriorityint
# GetPriority
C#
public int GetPriority();
Возвращает int
GetReverbAmountfloat
# GetReverbAmount
C#
public float GetReverbAmount();
Возвращает float
GetReverbBusNameStringName
# GetReverbBusName
C#
public StringName GetReverbBusName();
Возвращает StringName
GetReverbUniformityfloat
# GetReverbUniformity
C#
public float GetReverbUniformity();
Возвращает float
GetWindAttenuationFactorfloat
# GetWindAttenuationFactor
C#
public float GetWindAttenuationFactor();
Возвращает float
GetWindForceMagnitudefloat
# GetWindForceMagnitude
C#
public float GetWindForceMagnitude();
Возвращает float
GetWindSourcePathEntityPath
# GetWindSourcePath
C#
public EntityPath GetWindSourcePath();
Возвращает EntityPath
HasOverlappingAreasbool
# HasOverlappingAreas
C#
public bool HasOverlappingAreas();

Returns (Возврат) true если пересекается какая-либо Area3Ds, в остальном false. Совпадающая область CollisionObject3D.CollisionLayer Должно быть, часть этой области. CollisionObject3D.CollisionMask для обнаружения. По причинам эффективности (все слияния обрабатываются одновременно) список перекрывающихся участков изменяется один раз на этапе физики, а не сразу после перемещения объектов.

Возвращает bool
HasOverlappingBodiesbool
# HasOverlappingBodies
C#
public bool HasOverlappingBodies();

Возвращает true, если происходит пересечение с любыми объектами PhysicsBody3D, SoftBody3D или GridMap, в противном случае возвращает false. CollisionObject3D.CollisionLayer перекрывающегося объекта должен быть частью CollisionObject3D.CollisionMask этой области, чтобы быть обнаруженным. По соображениям производительности (все столкновения обрабатываются одновременно) список перекрывающихся объектов изменяется один раз на этапе физики, а не сразу после перемещения объектов. Рекомендуется использовать сигналы. Примечание: Физика " Reckfell " не поддерживает сообщение о перекрытиях с SoftBody3D, поэтому не будет учитывать такие объекты.

Возвращает bool
IsGravityAPointbool
# IsGravityAPoint
C#
public bool IsGravityAPoint();
Возвращает bool
IsMonitorablebool
# IsMonitorable
C#
public bool IsMonitorable();
Возвращает bool
IsMonitoringbool
# IsMonitoring
C#
public bool IsMonitoring();
Возвращает bool
IsOverridingAudioBusbool
# IsOverridingAudioBus
C#
public bool IsOverridingAudioBus();
Возвращает bool
IsUsingReverbBusbool
# IsUsingReverbBus
C#
public bool IsUsingReverbBus();
Возвращает bool
OverlapsAreabool
# OverlapsArea
C#
public bool OverlapsArea(Entity area);

Возвращает true, если заданная Area3D пересекает или перекрывает эту Area3D, false в противном случае. Примечание: Результат этого теста не появляется сразу после перемещения объектов. Для производительности список перекрытий обновляется один раз за кадр и перед шагом физики. Рассмотрите возможность использования сигналов вместо этого.

Параметры
ИмяТипПо умолчанию
areaEntity—
Возвращает bool
OverlapsBodybool
# OverlapsBody
C#
public bool OverlapsBody(Entity body);

Returns (Возврат) true если данное тело физики пересекается или пересекается Area3D, false иначе. body спор может быть либо PhysicsBody3D, SoftBody3D, или GridMap Хотя GridMaps не являются самим телом физики, они регистрируют свою плитку в форме столкновения как виртуальное тело физики. Примечание: Результат этого испытания не сразу же после перемещения объектов. Для выполнения задач список совпадений обновляется один раз на кадр и до этапа физики. Рассматривайте вместо этого использование сигналов. Примечание: Физика Reckfell не поддерживает совпадение данных с SoftBody3D, так и вернётся false в таких случаях.

Параметры
ИмяТипПо умолчанию
bodyEntity—
Возвращает bool
SetAngularDampvoid
# SetAngularDamp
C#
public void SetAngularDamp(float angularDamp);
Параметры
ИмяТипПо умолчанию
angularDampfloat—
SetAngularDampSpaceOverrideModevoid
# SetAngularDampSpaceOverrideMode
C#
public void SetAngularDampSpaceOverrideMode(Area3D.SpaceOverride spaceOverrideMode);
Параметры
ИмяТипПо умолчанию
spaceOverrideModeArea3D.SpaceOverride—
SetAudioBusNamevoid
# SetAudioBusName
C#
public void SetAudioBusName(StringName name);
Параметры
ИмяТипПо умолчанию
nameStringName—
SetAudioBusOverridevoid
# SetAudioBusOverride
C#
public void SetAudioBusOverride(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetGravityvoid
# SetGravity
C#
public void SetGravity(float gravity);
Параметры
ИмяТипПо умолчанию
gravityfloat—
SetGravityDirectionvoid
# SetGravityDirection
C#
public void SetGravityDirection(Vector3 direction);
Параметры
ИмяТипПо умолчанию
directionVector3—
SetGravityIsPointvoid
# SetGravityIsPoint
C#
public void SetGravityIsPoint(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetGravityPointCentervoid
# SetGravityPointCenter
C#
public void SetGravityPointCenter(Vector3 center);
Параметры
ИмяТипПо умолчанию
centerVector3—
SetGravityPointUnitDistancevoid
# SetGravityPointUnitDistance
C#
public void SetGravityPointUnitDistance(float distanceScale);
Параметры
ИмяТипПо умолчанию
distanceScalefloat—
SetGravitySpaceOverrideModevoid
# SetGravitySpaceOverrideMode
C#
public void SetGravitySpaceOverrideMode(Area3D.SpaceOverride spaceOverrideMode);
Параметры
ИмяТипПо умолчанию
spaceOverrideModeArea3D.SpaceOverride—
SetLinearDampvoid
# SetLinearDamp
C#
public void SetLinearDamp(float linearDamp);
Параметры
ИмяТипПо умолчанию
linearDampfloat—
SetLinearDampSpaceOverrideModevoid
# SetLinearDampSpaceOverrideMode
C#
public void SetLinearDampSpaceOverrideMode(Area3D.SpaceOverride spaceOverrideMode);
Параметры
ИмяТипПо умолчанию
spaceOverrideModeArea3D.SpaceOverride—
SetMonitorablevoid
# SetMonitorable
C#
public void SetMonitorable(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetMonitoringvoid
# SetMonitoring
C#
public void SetMonitoring(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetPriorityvoid
# SetPriority
C#
public void SetPriority(int priority);
Параметры
ИмяТипПо умолчанию
priorityint—
SetReverbAmountvoid
# SetReverbAmount
C#
public void SetReverbAmount(float amount);
Параметры
ИмяТипПо умолчанию
amountfloat—
SetReverbBusNamevoid
# SetReverbBusName
C#
public void SetReverbBusName(StringName name);
Параметры
ИмяТипПо умолчанию
nameStringName—
SetReverbUniformityvoid
# SetReverbUniformity
C#
public void SetReverbUniformity(float amount);
Параметры
ИмяТипПо умолчанию
amountfloat—
SetUseReverbBusvoid
# SetUseReverbBus
C#
public void SetUseReverbBus(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetWindAttenuationFactorvoid
# SetWindAttenuationFactor
C#
public void SetWindAttenuationFactor(float windAttenuationFactor);
Параметры
ИмяТипПо умолчанию
windAttenuationFactorfloat—
SetWindForceMagnitudevoid
# SetWindForceMagnitude
C#
public void SetWindForceMagnitude(float windForceMagnitude);
Параметры
ИмяТипПо умолчанию
windForceMagnitudefloat—
SetWindSourcePathvoid
# SetWindSourcePath
C#
public void SetWindSourcePath(EntityPath windSourcePath);
Параметры
ИмяТипПо умолчанию
windSourcePathEntityPath—

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

AreaEnteredСобытие
# AreaEntered
C#
public event Area3D.AreaEnteredEventHandler AreaEntered;

Выдается, когда полученный area входит в эту область. Требуется, чтобы Area3D.Monitoring был установлен в true.

Параметры обработчика
ИмяТипПо умолчанию
areaArea3D—
AreaExitedСобытие
# AreaExited
C#
public event Area3D.AreaExitedEventHandler AreaExited;

Выдается, когда полученная area выходит из этой области. Требует, чтобы Area3D.Monitoring был установлен на true.

Параметры обработчика
ИмяТипПо умолчанию
areaArea3D—
AreaShapeEnteredСобытие
# AreaShapeEntered
C#
public event Area3D.AreaShapeEnteredEventHandler AreaShapeEntered;

Выдается, когда Shape3D полученного area входит в форму этой области. Требует, чтобы Area3D.Monitoring был установлен в true. local_shape_index и area_shape_index содержат индексы взаимодействующих фигур из этой области и другой области соответственно. area_rid содержит Rid другой области. Эти значения можно использовать с PhysicsServer3D. Пример: Получить узел CollisionShape3D из индекса формы:

Параметры обработчика
ИмяТипПо умолчанию
areaRidRid—
areaArea3D—
areaShapeIndexlong—
localShapeIndexlong—
AreaShapeExitedСобытие
# AreaShapeExited
C#
public event Area3D.AreaShapeExitedEventHandler AreaShapeExited;

Выдается, когда Shape3D полученной area выходит из формы этой области. Требует, чтобы Area3D.Monitoring был установлен на true. См. также Area3D.AreaShapeEntered.

Параметры обработчика
ИмяТипПо умолчанию
areaRidRid—
areaArea3D—
areaShapeIndexlong—
localShapeIndexlong—
BodyEnteredСобытие
# BodyEntered
C#
public event Area3D.BodyEnteredEventHandler BodyEntered;

Сигнал генерируется, когда полученный body попадает в эту область. body может быть PhysicsBody3D, SoftBody3D или GridMap. GridMap обнаруживаются, если в их MeshLibrary настроены формы столкновений. Требуется установить Area3D.Monitoring в значение true. Примечание: Физика " Reckfell " не поддерживает сообщение о перекрытиях с SoftBody3D, поэтому в таких случаях этот сигнал не будет генерироваться.

Параметры обработчика
ИмяТипПо умолчанию
bodyEntity3D—
BodyExitedСобытие
# BodyExited
C#
public event Area3D.BodyExitedEventHandler BodyExited;

Сигнал генерируется, когда полученный body выходит за пределы этой области. body может быть PhysicsBody3D, SoftBody3D или GridMap. GridMap обнаруживаются, если в их MeshLibrary настроены формы столкновений. Требуется установить Area3D.Monitoring в значение true. Примечание: Физика " Reckfell " не поддерживает сообщение о перекрытиях с SoftBody3D, поэтому в таких случаях этот сигнал не будет генерироваться.

Параметры обработчика
ИмяТипПо умолчанию
bodyEntity3D—
BodyShapeEnteredСобытие
# BodyShapeEntered
C#
public event Area3D.BodyShapeEnteredEventHandler BodyShapeEntered;

Сигнал генерируется, когда объект Shape3D из полученного объекта body входит в фигуру этой области. body может быть объектом PhysicsBody3D, SoftBody3D или GridMap. Объекты GridMap обнаруживаются, если в их MeshLibrary настроены формы столкновений. Требуется установить Area3D.Monitoring в значение true. local_shape_index и body_shape_index содержат индексы взаимодействующих фигур из этой области и взаимодействующего тела соответственно. body_rid содержит Rid тела. Эти значения можно использовать с PhysicsServer3D. Примечание: Физика " Reckfell " не поддерживает сообщение о перекрытиях с SoftBody3D, поэтому в таких случаях этот сигнал не будет генерироваться. Пример: Получить узел CollisionShape3D по индексу формы:

Параметры обработчика
ИмяТипПо умолчанию
bodyRidRid—
bodyEntity3D—
bodyShapeIndexlong—
localShapeIndexlong—
BodyShapeExitedСобытие
# BodyShapeExited
C#
public event Area3D.BodyShapeExitedEventHandler BodyShapeExited;

Сигнал генерируется, когда Shape3D полученного body выходит за пределы области. body может быть PhysicsBody3D, SoftBody3D или GridMap. GridMap обнаруживаются, если в их MeshLibrary настроены формы столкновений. Требуется установить Area3D.Monitoring в значение true. См. также Area3D.BodyShapeEntered. Примечание: Физика " Reckfell " не поддерживает сообщение о перекрытиях с SoftBody3D, поэтому в таких случаях этот сигнал не будет генерироваться.

Параметры обработчика
ИмяТипПо умолчанию
bodyRidRid—
bodyEntity3D—
bodyShapeIndexlong—
localShapeIndexlong—

Area3D.SpaceOverride

ЗначениеОписание
Combine = 1

Эта область добавляет свои значения гравитации/затухания ко всему, что было рассчитано до сих пор (в порядке Area3D.Priority).

CombineReplace = 2

Эта область добавляет свои значения гравитации/демпфирования ко всему, что было рассчитано до сих пор (в порядке Area3D.Priority), игнорируя любые области с более низким приоритетом.

Disabled = 0

Эта область не влияет на гравитацию/демпфирование.

Replace = 3

Эта область заменяет любую гравитацию/демпфирование, даже значения по умолчанию, игнорируя любые области с более низким приоритетом.

ReplaceCombine = 4

Эта область заменяет все рассчитанные до сих пор значения гравитации/демпфирования (в порядке Area3D.Priority), но продолжает рассчитывать остальные области.

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

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

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

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