PhysicsDirectBodyState2D
Предоставляет прямой доступ к физическому телу в PhysicsServer2D.
Предоставляет прямой доступ к физическому телу в PhysicsServer2D.
Предоставляет прямой доступ к физическому телу в PhysicsServer2D, позволяя безопасно изменять физические свойства. Этот объект передается через прямой обратный вызов состояния RigidBody2D и предназначен для изменения прямого состояния этого тела. См. RigidBody2D._IntegrateForces.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Свойства14
AngularVelocityСвойство
public float AngularVelocity { get; set; }Скорость вращения тела в радианах в секунду.
CenterOfMassСвойство
public Vector2 CenterOfMass { get; }Положение центра масс тела относительно центра тела в глобальной системе координат.
CenterOfMassLocalСвойство
public Vector2 CenterOfMassLocal { get; }Положение центра масс тела в локальной системе координат тела.
CollisionLayerСвойство
public uint CollisionLayer { get; set; }Слой столкновений тела.
CollisionMaskСвойство
public uint CollisionMask { get; set; }Маска столкновения тела.
InverseInertiaСвойство
public float InverseInertia { get; }Величина, обратная инерции тела.
InverseMassСвойство
public float InverseMass { get; }Величина, обратная массе тела.
LinearVelocityСвойство
public Vector2 LinearVelocity { get; set; }Линейная скорость тела в пикселях в секунду.
SleepingСвойство
public bool Sleeping { get; set; }Если true, это тело в данный момент спит (не активно).
StepСвойство
public float Step { get; }Временной шаг (дельта), используемый для симуляции.
TotalAngularDampСвойство
public float TotalAngularDamp { get; }Скорость, при которой тело прекращает вращение, если на него не действуют никакие другие силы.
TotalGravityСвойство
public Vector2 TotalGravity { get; }Суммарный вектор гравитации, действующий в данный момент на это тело.
TotalLinearDampСвойство
public float TotalLinearDamp { get; }Скорость, с которой тело прекращает движение, если на него не действуют никакие другие силы.
TransformСвойство
public Transform2D Transform { get; set; }Матрица трансформации тела.
Методы48
AddConstantCentralForcevoid
public void AddConstantCentralForce(Vector2? force = default);Добавляет постоянную направленную силу, не влияя на вращение, которая продолжает применяться с течением времени, пока не будет очищена с помощью constant_force = Vector2(0, 0).
Это эквивалентно использованию PhysicsDirectBodyState2D.AddConstantForce в центре масс тела.
| Имя | Тип | По умолчанию |
|---|---|---|
force | Vector2? | default |
forceЕсли параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 0.0f).
AddConstantForcevoid
public void AddConstantForce(Vector2 force, Vector2? position = default);Добавляет к телу постоянную позиционную силу, которая продолжает применяться с течением времени, пока не будет очищена с помощью constant_force = Vector2(0, 0).
position — это смещение от начала координат тела в глобальных координатах.
| Имя | Тип | По умолчанию |
|---|---|---|
force | Vector2 | — |
position | Vector2? | default |
positionЕсли параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 0.0f).
AddConstantTorquevoid
public void AddConstantTorque(float torque);Добавляет постоянную вращательную силу, не влияя на положение, которая продолжает применяться с течением времени, пока не будет очищена с помощью constant_torque = 0.
| Имя | Тип | По умолчанию |
|---|---|---|
torque | float | — |
ApplyCentralForcevoid
public void ApplyCentralForce(Vector2? force = default);Применяет направленную силу, не влияя на вращение. Сила зависит от времени и должна применяться при каждом обновлении физики.
Это эквивалентно использованию PhysicsDirectBodyState2D.ApplyForce в центре масс тела.
| Имя | Тип | По умолчанию |
|---|---|---|
force | Vector2? | default |
forceЕсли параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 0.0f).
ApplyCentralImpulsevoid
public void ApplyCentralImpulse(Vector2 impulse);Применяет направленный импульс, не влияя на вращение.
Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force").
Это эквивалентно использованию PhysicsDirectBodyState2D.ApplyImpulse в центре масс тела.
| Имя | Тип | По умолчанию |
|---|---|---|
impulse | Vector2 | — |
ApplyForcevoid
public void ApplyForce(Vector2 force, Vector2? position = default);Применяет позиционированную силу к телу. Сила зависит от времени и должна применяться при каждом обновлении физики.
position — это смещение от начала координат тела в глобальных координатах.
| Имя | Тип | По умолчанию |
|---|---|---|
force | Vector2 | — |
position | Vector2? | default |
positionЕсли параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 0.0f).
ApplyImpulsevoid
public void ApplyImpulse(Vector2 impulse, Vector2? position = default);Применяет позиционированный импульс к телу.
Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force").
position — это смещение от начала координат тела в глобальных координатах.
| Имя | Тип | По умолчанию |
|---|---|---|
impulse | Vector2 | — |
position | Vector2? | default |
positionЕсли параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 0.0f).
ApplyTorquevoid
public void ApplyTorque(float torque);Применяет вращательную силу, не влияя на положение. Сила зависит от времени и должна применяться при каждом обновлении физики.
Примечание: для работы требуется PhysicsDirectBodyState2D.InverseInertia. Чтобы иметь PhysicsDirectBodyState2D.InverseInertia, активный CollisionShape2D должен быть дочерним элементом узла, или вы можете вручную задать PhysicsDirectBodyState2D.InverseInertia.
| Имя | Тип | По умолчанию |
|---|---|---|
torque | float | — |
ApplyTorqueImpulsevoid
public void ApplyTorqueImpulse(float impulse);Применяет вращательный импульс к телу, не влияя на положение.
Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force").
Примечание: для работы требуется PhysicsDirectBodyState2D.InverseInertia. Чтобы иметь PhysicsDirectBodyState2D.InverseInertia, активный CollisionShape2D должен быть дочерним элементом узла, или вы можете вручную задать PhysicsDirectBodyState2D.InverseInertia.
| Имя | Тип | По умолчанию |
|---|---|---|
impulse | float | — |
GetAngularVelocityfloat
public float GetAngularVelocity();floatGetCenterOfMassVector2
public Vector2 GetCenterOfMass();Vector2GetCenterOfMassLocalVector2
public Vector2 GetCenterOfMassLocal();Vector2GetCollisionLayeruint
public uint GetCollisionLayer();uintGetCollisionMaskuint
public uint GetCollisionMask();uintGetConstantForceVector2
public Vector2 GetConstantForce();Возвращает общие постоянные позиционные силы тела, применяемые во время каждого обновления физики.
См. PhysicsDirectBodyState2D.AddConstantForce и PhysicsDirectBodyState2D.AddConstantCentralForce.
Vector2GetConstantTorquefloat
public float GetConstantTorque();Возвращает общие постоянные вращательные силы тела, применяемые во время каждого обновления физики.
См. PhysicsDirectBodyState2D.AddConstantTorque.
floatGetContactColliderRid
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 | — |
ReckfellObjectGetContactColliderPositionVector2
public Vector2 GetContactColliderPosition(int contactIdx);Возвращает положение точки контакта на коллайдере в глобальной системе координат.
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
Vector2GetContactColliderShapeint
public int GetContactColliderShape(int contactIdx);Возвращает индекс формы коллайдера.
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
intGetContactColliderVelocityAtPositionVector2
public Vector2 GetContactColliderVelocityAtPosition(int contactIdx);Возвращает вектор скорости в точке контакта коллайдера.
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
Vector2GetContactCountint
public int GetContactCount();Возвращает количество контактов этого тела с другими телами.
Примечание: По умолчанию возвращается 0, если тела не настроены на мониторинг контактов. См. RigidBody2D.ContactMonitor.
intGetContactImpulseVector2
public Vector2 GetContactImpulse(int contactIdx);Возвращает импульс, созданный контактом.
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
Vector2GetContactLocalNormalVector2
public Vector2 GetContactLocalNormal(int contactIdx);Возвращает локальную нормаль в точке контакта.
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
Vector2GetContactLocalPositionVector2
public Vector2 GetContactLocalPosition(int contactIdx);Возвращает положение точки контакта на теле в глобальной системе координат.
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
Vector2GetContactLocalShapeint
public int GetContactLocalShape(int contactIdx);Возвращает локальный индекс формы столкновения.
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
intGetContactLocalVelocityAtPositionVector2
public Vector2 GetContactLocalVelocityAtPosition(int contactIdx);Возвращает вектор скорости в точке контакта тела.
| Имя | Тип | По умолчанию |
|---|---|---|
contactIdx | int | — |
Vector2GetInverseInertiafloat
public float GetInverseInertia();floatGetInverseMassfloat
public float GetInverseMass();floatGetLinearVelocityVector2
public Vector2 GetLinearVelocity();Vector2GetSpaceStatePhysicsDirectSpaceState2D
public PhysicsDirectSpaceState2D GetSpaceState();Возвращает текущее состояние пространства, полезно для запросов.
PhysicsDirectSpaceState2DGetStepfloat
public float GetStep();floatGetTotalAngularDampfloat
public float GetTotalAngularDamp();floatGetTotalGravityVector2
public Vector2 GetTotalGravity();Vector2GetTotalLinearDampfloat
public float GetTotalLinearDamp();floatGetTransformTransform2D
public Transform2D GetTransform();Transform2DGetVelocityAtLocalPositionVector2
public Vector2 GetVelocityAtLocalPosition(Vector2 localPosition);Возвращает скорость тела в заданном относительном положении.
local_position — смещение относительно начала координат тела в глобальных координатах.
| Имя | Тип | По умолчанию |
|---|---|---|
localPosition | Vector2 | — |
Vector2IntegrateForcesvoid
public void IntegrateForces();Обновляет линейную и угловую скорость тела, применяя гравитацию и демпфирование в течение эквивалента одного физического тика.
IsSleepingbool
public bool IsSleeping();boolSetAngularVelocityvoid
public void SetAngularVelocity(float velocity);| Имя | Тип | По умолчанию |
|---|---|---|
velocity | float | — |
SetCollisionLayervoid
public void SetCollisionLayer(uint layer);| Имя | Тип | По умолчанию |
|---|---|---|
layer | uint | — |
SetCollisionMaskvoid
public void SetCollisionMask(uint mask);| Имя | Тип | По умолчанию |
|---|---|---|
mask | uint | — |
SetConstantForcevoid
public void SetConstantForce(Vector2 force);Устанавливает общие постоянные позиционные силы тела, применяемые во время каждого обновления физики.
См. PhysicsDirectBodyState2D.AddConstantForce и PhysicsDirectBodyState2D.AddConstantCentralForce.
| Имя | Тип | По умолчанию |
|---|---|---|
force | Vector2 | — |
SetConstantTorquevoid
public void SetConstantTorque(float torque);Устанавливает общие постоянные вращательные силы тела, применяемые во время каждого обновления физики.
См. PhysicsDirectBodyState2D.AddConstantTorque.
| Имя | Тип | По умолчанию |
|---|---|---|
torque | float | — |
SetLinearVelocityvoid
public void SetLinearVelocity(Vector2 velocity);| Имя | Тип | По умолчанию |
|---|---|---|
velocity | Vector2 | — |
SetSleepStatevoid
public void SetSleepState(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetTransformvoid
public void SetTransform(Transform2D transform);| Имя | Тип | По умолчанию |
|---|---|---|
transform | Transform2D | — |