PhysicsDirectBodyState3D
Предоставляет прямой доступ к физическому телу в PhysicsServer3D.
Предоставляет прямой доступ к физическому телу в PhysicsServer3D.
Предоставляет прямой доступ к физическому телу в PhysicsServer3D, позволяя безопасно изменять физические свойства. Этот объект передается через прямой обратный вызов состояния RigidBody3D и предназначен для изменения прямого состояния этого тела. См. RigidBody3D._IntegrateForces.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Свойства16
AngularVelocityСвойство
public Vector3 AngularVelocity { get; set; }Скорость вращения тела в радианах в секунду.
CenterOfMassСвойство
public Vector3 CenterOfMass { get; }Положение центра масс тела относительно центра тела в глобальной системе координат.
CenterOfMassLocalСвойство
public Vector3 CenterOfMassLocal { get; }Положение центра масс тела в локальной системе координат тела.
CollisionLayerСвойство
public uint CollisionLayer { get; set; }Слой столкновений тела.
CollisionMaskСвойство
public uint CollisionMask { get; set; }Маска столкновения тела.
InverseInertiaСвойство
public Vector3 InverseInertia { get; }Величина, обратная инерции тела.
InverseInertiaTensorСвойство
public Basis InverseInertiaTensor { get; }Обратная величина тензора инерции тела.
InverseMassСвойство
public float InverseMass { get; }Величина, обратная массе тела.
LinearVelocityСвойство
public Vector3 LinearVelocity { get; set; }Линейная скорость тела в единицах в секунду.
PrincipalInertiaAxesСвойство
public Basis PrincipalInertiaAxes { get; }SleepingСвойство
public bool Sleeping { get; set; }Если true, это тело в данный момент спит (не активно).
StepСвойство
public float Step { get; }Временной шаг (дельта), используемый для симуляции.
TotalAngularDampСвойство
public float TotalAngularDamp { get; }Скорость, при которой тело прекращает вращение, если на него не действуют никакие другие силы.
TotalGravityСвойство
public Vector3 TotalGravity { get; }Суммарный вектор гравитации, действующий в данный момент на это тело.
TotalLinearDampСвойство
public float TotalLinearDamp { get; }Скорость, с которой тело прекращает движение, если на него не действуют никакие другие силы.
TransformСвойство
public Transform3D Transform { get; set; }Матрица трансформации тела.
Методы50
AddConstantCentralForcevoid
public void AddConstantCentralForce(Vector3? force = default);Добавляет постоянную направленную силу, не влияя на вращение, которая продолжает применяться с течением времени, пока не будет очищена с помощью constant_force = Vector3(0, 0, 0).
Это эквивалентно использованию PhysicsDirectBodyState3D.AddConstantForce в центре масс тела.
| Имя | Тип | По умолчанию |
|---|---|---|
force | Vector3? | default |
forceЕсли параметр не имеет значения, то значение по умолчанию: new Vector3(0.0f, 0.0f, 0.0f).
AddConstantForcevoid
public void AddConstantForce(Vector3 force, Vector3? position = default);Добавляет к телу постоянную позиционную силу, которая продолжает применяться с течением времени, пока не будет очищена с помощью constant_force = Vector3(0, 0, 0).
position — это смещение от начала координат тела в глобальных координатах.
| Имя | Тип | По умолчанию |
|---|---|---|
force | Vector3 | — |
position | Vector3? | default |
positionЕсли параметр не имеет значения, то значение по умолчанию: new Vector3(0.0f, 0.0f, 0.0f).
AddConstantTorquevoid
public void AddConstantTorque(Vector3 torque);Добавляет постоянную вращательную силу, не влияя на положение, которая продолжает применяться с течением времени, пока не будет очищена с помощью constant_torque = Vector3(0, 0, 0).
| Имя | Тип | По умолчанию |
|---|---|---|
torque | Vector3 | — |
ApplyCentralForcevoid
public void ApplyCentralForce(Vector3? force = default);Применяет направленную силу, не влияя на вращение. Сила зависит от времени и должна применяться при каждом обновлении физики.
Это эквивалентно использованию PhysicsDirectBodyState3D.ApplyForce в центре масс тела.
| Имя | Тип | По умолчанию |
|---|---|---|
force | Vector3? | default |
forceЕсли параметр не имеет значения, то значение по умолчанию: new Vector3(0.0f, 0.0f, 0.0f).
ApplyCentralImpulsevoid
public void ApplyCentralImpulse(Vector3? impulse = default);Применяет направленный импульс, не влияя на вращение.
Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force").
Это эквивалентно использованию PhysicsDirectBodyState3D.ApplyImpulse в центре масс тела.
| Имя | Тип | По умолчанию |
|---|---|---|
impulse | Vector3? | default |
impulseЕсли параметр не имеет значения, то значение по умолчанию: new Vector3(0.0f, 0.0f, 0.0f).
ApplyForcevoid
public void ApplyForce(Vector3 force, Vector3? position = default);Применяет позиционированную силу к телу. Сила зависит от времени и должна применяться при каждом обновлении физики.
position — это смещение от начала координат тела в глобальных координатах.
| Имя | Тип | По умолчанию |
|---|---|---|
force | Vector3 | — |
position | Vector3? | default |
positionЕсли параметр не имеет значения, то значение по умолчанию: new Vector3(0.0f, 0.0f, 0.0f).
ApplyImpulsevoid
public void ApplyImpulse(Vector3 impulse, Vector3? position = default);Применяет позиционированный импульс к телу.
Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force").
position — это смещение от начала координат тела в глобальных координатах.
| Имя | Тип | По умолчанию |
|---|---|---|
impulse | Vector3 | — |
position | Vector3? | default |
positionЕсли параметр не имеет значения, то значение по умолчанию: new Vector3(0.0f, 0.0f, 0.0f).
ApplyTorquevoid
public void ApplyTorque(Vector3 torque);Применяет вращательную силу, не влияя на положение. Сила зависит от времени и должна применяться при каждом обновлении физики.
Примечание: для работы требуется PhysicsDirectBodyState3D.InverseInertia. Чтобы иметь PhysicsDirectBodyState3D.InverseInertia, активный CollisionShape3D должен быть дочерним элементом узла, или вы можете вручную задать PhysicsDirectBodyState3D.InverseInertia.
| Имя | Тип | По умолчанию |
|---|---|---|
torque | Vector3 | — |
ApplyTorqueImpulsevoid
public void ApplyTorqueImpulse(Vector3 impulse);Применяет вращательный импульс к телу, не влияя на положение.
Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force").
Примечание: для работы требуется PhysicsDirectBodyState3D.InverseInertia. Чтобы иметь PhysicsDirectBodyState3D.InverseInertia, активный CollisionShape3D должен быть дочерним элементом узла, или вы можете вручную задать PhysicsDirectBodyState3D.InverseInertia.
| Имя | Тип | По умолчанию |
|---|---|---|
impulse | Vector3 | — |
GetAngularVelocityVector3
public Vector3 GetAngularVelocity();Vector3GetCenterOfMassVector3
public Vector3 GetCenterOfMass();Vector3GetCenterOfMassLocalVector3
public Vector3 GetCenterOfMassLocal();Vector3GetCollisionLayeruint
public uint GetCollisionLayer();uintGetCollisionMaskuint
public uint GetCollisionMask();uintGetConstantForceVector3
public Vector3 GetConstantForce();Возвращает общие постоянные позиционные силы тела, применяемые во время каждого обновления физики.
См. PhysicsDirectBodyState3D.AddConstantForce и PhysicsDirectBodyState3D.AddConstantCentralForce.
Vector3GetConstantTorqueVector3
public Vector3 GetConstantTorque();Возвращает общие постоянные вращательные силы тела, применяемые во время каждого обновления физики.
См. PhysicsDirectBodyState3D.AddConstantTorque.
Vector3GetContactColliderRid
public Rid GetContactCollider(int contactIdx);Возвращает Rid коллайдера (collider).
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
RidGetContactColliderIdulong
public ulong GetContactColliderId(int contactIdx);Возвращает идентификатор объекта коллайдера.
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
ulongGetContactColliderObjectReckfellObject
public ReckfellObject GetContactColliderObject(int contactIdx);Возвращает объект коллайдера.
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
ReckfellObjectGetContactColliderPositionVector3
public Vector3 GetContactColliderPosition(int contactIdx);Возвращает положение точки контакта на коллайдере в глобальной системе координат.
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
Vector3GetContactColliderShapeint
public int GetContactColliderShape(int contactIdx);Возвращает индекс формы коллайдера.
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
intGetContactColliderVelocityAtPositionVector3
public Vector3 GetContactColliderVelocityAtPosition(int contactIdx);Возвращает вектор линейной скорости в точке контакта коллайдера.
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
Vector3GetContactCountint
public int GetContactCount();Возвращает количество контактов этого тела с другими телами.
Примечание: По умолчанию возвращается 0, если тела не настроены на мониторинг контактов. См. RigidBody3D.ContactMonitor.
intGetContactImpulseVector3
public Vector3 GetContactImpulse(int contactIdx);Импульс, создаваемый контактом.
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
Vector3GetContactLocalNormalVector3
public Vector3 GetContactLocalNormal(int contactIdx);Возвращает локальную нормаль в точке контакта.
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
Vector3GetContactLocalPositionVector3
public Vector3 GetContactLocalPosition(int contactIdx);Возвращает положение точки контакта на теле в глобальной системе координат.
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
Vector3GetContactLocalShapeint
public int GetContactLocalShape(int contactIdx);Возвращает локальный индекс формы столкновения.
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
intGetContactLocalVelocityAtPositionVector3
public Vector3 GetContactLocalVelocityAtPosition(int contactIdx);Возвращает вектор линейной скорости в точке контакта тела.
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
Vector3GetInverseInertiaVector3
public Vector3 GetInverseInertia();Vector3GetInverseInertiaTensorBasis
public Basis GetInverseInertiaTensor();BasisGetInverseMassfloat
public float GetInverseMass();floatGetLinearVelocityVector3
public Vector3 GetLinearVelocity();Vector3GetPrincipalInertiaAxesBasis
public Basis GetPrincipalInertiaAxes();BasisGetSpaceStatePhysicsDirectSpaceState3D
public PhysicsDirectSpaceState3D GetSpaceState();Возвращает текущее состояние пространства, полезно для запросов.
PhysicsDirectSpaceState3DGetStepfloat
public float GetStep();floatGetTotalAngularDampfloat
public float GetTotalAngularDamp();floatGetTotalGravityVector3
public Vector3 GetTotalGravity();Vector3GetTotalLinearDampfloat
public float GetTotalLinearDamp();floatGetTransformTransform3D
public Transform3D GetTransform();Transform3DGetVelocityAtLocalPositionVector3
public Vector3 GetVelocityAtLocalPosition(Vector3 localPosition);Возвращает скорость тела в заданном относительном положении.
local_position — смещение относительно начала координат тела в глобальных координатах.
| Имя | Тип | По умолчанию |
|---|---|---|
localPosition | Vector3 | — |
Vector3IntegrateForcesvoid
public void IntegrateForces();Обновляет линейную и угловую скорость тела, применяя гравитацию и демпфирование в течение эквивалента одного физического тика.
IsSleepingbool
public bool IsSleeping();boolSetAngularVelocityvoid
public void SetAngularVelocity(Vector3 velocity);| Имя | Тип | По умолчанию |
|---|---|---|
velocity | Vector3 | — |
SetCollisionLayervoid
public void SetCollisionLayer(uint layer);| Имя | Тип | По умолчанию |
|---|---|---|
layer | uint | — |
SetCollisionMaskvoid
public void SetCollisionMask(uint mask);| Имя | Тип | По умолчанию |
|---|---|---|
mask | uint | — |
SetConstantForcevoid
public void SetConstantForce(Vector3 force);Устанавливает общие постоянные позиционные силы тела, применяемые во время каждого обновления физики.
См. PhysicsDirectBodyState3D.AddConstantForce и PhysicsDirectBodyState3D.AddConstantCentralForce.
| Имя | Тип | По умолчанию |
|---|---|---|
force | Vector3 | — |
SetConstantTorquevoid
public void SetConstantTorque(Vector3 torque);Устанавливает общие постоянные вращательные силы тела, применяемые во время каждого обновления физики.
См. PhysicsDirectBodyState3D.AddConstantTorque.
| Имя | Тип | По умолчанию |
|---|---|---|
torque | Vector3 | — |
SetLinearVelocityvoid
public void SetLinearVelocity(Vector3 velocity);| Имя | Тип | По умолчанию |
|---|---|---|
velocity | Vector3 | — |
SetSleepStatevoid
public void SetSleepState(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetTransformvoid
public void SetTransform(Transform3D transform);| Имя | Тип | По умолчанию |
|---|---|---|
transform | Transform3D | — |