reckfellENGINE

PhysicsDirectBodyState2D

Предоставляет прямой доступ к физическому телу в PhysicsServer2D.

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

Предоставляет прямой доступ к физическому телу в PhysicsServer2D.

Предоставляет прямой доступ к физическому телу в PhysicsServer2D, позволяя безопасно изменять физические свойства. Этот объект передается через прямой обратный вызов состояния RigidBody2D и предназначен для изменения прямого состояния этого тела. См. RigidBody2D._IntegrateForces.

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

Свойства14

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

Скорость вращения тела в радианах в секунду.

CenterOfMassСвойство
# CenterOfMass
C#
public Vector2 CenterOfMass { get; }

Положение центра масс тела относительно центра тела в глобальной системе координат.

CenterOfMassLocalСвойство
# CenterOfMassLocal
C#
public Vector2 CenterOfMassLocal { get; }

Положение центра масс тела в локальной системе координат тела.

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

Слой столкновений тела.

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

Маска столкновения тела.

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

Величина, обратная инерции тела.

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

Величина, обратная массе тела.

LinearVelocityСвойство
# LinearVelocity
C#
public Vector2 LinearVelocity { get; set; }

Линейная скорость тела в пикселях в секунду.

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

Если true, это тело в данный момент спит (не активно).

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

Временной шаг (дельта), используемый для симуляции.

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

Скорость, при которой тело прекращает вращение, если на него не действуют никакие другие силы.

TotalGravityСвойство
# TotalGravity
C#
public Vector2 TotalGravity { get; }

Суммарный вектор гравитации, действующий в данный момент на это тело.

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

Скорость, с которой тело прекращает движение, если на него не действуют никакие другие силы.

TransformСвойство
# Transform
C#
public Transform2D Transform { get; set; }

Матрица трансформации тела.

Методы48

AddConstantCentralForcevoid
# AddConstantCentralForce
C#
public void AddConstantCentralForce(Vector2? force = default);

Добавляет постоянную направленную силу, не влияя на вращение, которая продолжает применяться с течением времени, пока не будет очищена с помощью constant_force = Vector2(0, 0). Это эквивалентно использованию PhysicsDirectBodyState2D.AddConstantForce в центре масс тела.

Параметры
ИмяТипПо умолчанию
forceVector2?default
force

Если параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 0.0f).

AddConstantForcevoid
# AddConstantForce
C#
public void AddConstantForce(Vector2 force, Vector2? position = default);

Добавляет к телу постоянную позиционную силу, которая продолжает применяться с течением времени, пока не будет очищена с помощью constant_force = Vector2(0, 0). position — это смещение от начала координат тела в глобальных координатах.

Параметры
ИмяТипПо умолчанию
forceVector2—
positionVector2?default
position

Если параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 0.0f).

AddConstantTorquevoid
# AddConstantTorque
C#
public void AddConstantTorque(float torque);

Добавляет постоянную вращательную силу, не влияя на положение, которая продолжает применяться с течением времени, пока не будет очищена с помощью constant_torque = 0.

Параметры
ИмяТипПо умолчанию
torquefloat—
ApplyCentralForcevoid
# ApplyCentralForce
C#
public void ApplyCentralForce(Vector2? force = default);

Применяет направленную силу, не влияя на вращение. Сила зависит от времени и должна применяться при каждом обновлении физики. Это эквивалентно использованию PhysicsDirectBodyState2D.ApplyForce в центре масс тела.

Параметры
ИмяТипПо умолчанию
forceVector2?default
force

Если параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 0.0f).

ApplyCentralImpulsevoid
# ApplyCentralImpulse
C#
public void ApplyCentralImpulse(Vector2 impulse);

Применяет направленный импульс, не влияя на вращение. Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force"). Это эквивалентно использованию PhysicsDirectBodyState2D.ApplyImpulse в центре масс тела.

Параметры
ИмяТипПо умолчанию
impulseVector2—
ApplyForcevoid
# ApplyForce
C#
public void ApplyForce(Vector2 force, Vector2? position = default);

Применяет позиционированную силу к телу. Сила зависит от времени и должна применяться при каждом обновлении физики. position — это смещение от начала координат тела в глобальных координатах.

Параметры
ИмяТипПо умолчанию
forceVector2—
positionVector2?default
position

Если параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 0.0f).

ApplyImpulsevoid
# ApplyImpulse
C#
public void ApplyImpulse(Vector2 impulse, Vector2? position = default);

Применяет позиционированный импульс к телу. Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force"). position — это смещение от начала координат тела в глобальных координатах.

Параметры
ИмяТипПо умолчанию
impulseVector2—
positionVector2?default
position

Если параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 0.0f).

ApplyTorquevoid
# ApplyTorque
C#
public void ApplyTorque(float torque);

Применяет вращательную силу, не влияя на положение. Сила зависит от времени и должна применяться при каждом обновлении физики. Примечание: для работы требуется PhysicsDirectBodyState2D.InverseInertia. Чтобы иметь PhysicsDirectBodyState2D.InverseInertia, активный CollisionShape2D должен быть дочерним элементом узла, или вы можете вручную задать PhysicsDirectBodyState2D.InverseInertia.

Параметры
ИмяТипПо умолчанию
torquefloat—
ApplyTorqueImpulsevoid
# ApplyTorqueImpulse
C#
public void ApplyTorqueImpulse(float impulse);

Применяет вращательный импульс к телу, не влияя на положение. Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force"). Примечание: для работы требуется PhysicsDirectBodyState2D.InverseInertia. Чтобы иметь PhysicsDirectBodyState2D.InverseInertia, активный CollisionShape2D должен быть дочерним элементом узла, или вы можете вручную задать PhysicsDirectBodyState2D.InverseInertia.

Параметры
ИмяТипПо умолчанию
impulsefloat—
GetAngularVelocityfloat
# GetAngularVelocity
C#
public float GetAngularVelocity();
Возвращает float
GetCenterOfMassVector2
# GetCenterOfMass
C#
public Vector2 GetCenterOfMass();
Возвращает Vector2
GetCenterOfMassLocalVector2
# GetCenterOfMassLocal
C#
public Vector2 GetCenterOfMassLocal();
Возвращает Vector2
GetCollisionLayeruint
# GetCollisionLayer
C#
public uint GetCollisionLayer();
Возвращает uint
GetCollisionMaskuint
# GetCollisionMask
C#
public uint GetCollisionMask();
Возвращает uint
GetConstantForceVector2
# GetConstantForce
C#
public Vector2 GetConstantForce();

Возвращает общие постоянные позиционные силы тела, применяемые во время каждого обновления физики. См. PhysicsDirectBodyState2D.AddConstantForce и PhysicsDirectBodyState2D.AddConstantCentralForce.

Возвращает Vector2
GetConstantTorquefloat
# GetConstantTorque
C#
public float GetConstantTorque();

Возвращает общие постоянные вращательные силы тела, применяемые во время каждого обновления физики. См. PhysicsDirectBodyState2D.AddConstantTorque.

Возвращает float
GetContactColliderRid
# GetContactCollider
C#
public Rid GetContactCollider(int contactIdx);

Возвращает Rid коллайдера (collider).

Параметры
ИмяТипПо умолчанию
contactIdxint—
Возвращает Rid
GetContactColliderIdulong
# GetContactColliderId
C#
public ulong GetContactColliderId(int contactIdx);

Возвращает идентификатор объекта коллайдера.

Параметры
ИмяТипПо умолчанию
contactIdxint—
Возвращает ulong
GetContactColliderObjectReckfellObject
# GetContactColliderObject
C#
public ReckfellObject GetContactColliderObject(int contactIdx);

Возвращает объект коллайдера. Это зависит от того, как он был создан (возвращает узел сцены, если таковой использовался для его создания).

Параметры
ИмяТипПо умолчанию
contactIdxint—
Возвращает ReckfellObject
GetContactColliderPositionVector2
# GetContactColliderPosition
C#
public Vector2 GetContactColliderPosition(int contactIdx);

Возвращает положение точки контакта на коллайдере в глобальной системе координат.

Параметры
ИмяТипПо умолчанию
contactIdxint—
Возвращает Vector2
GetContactColliderShapeint
# GetContactColliderShape
C#
public int GetContactColliderShape(int contactIdx);

Возвращает индекс формы коллайдера.

Параметры
ИмяТипПо умолчанию
contactIdxint—
Возвращает int
GetContactColliderVelocityAtPositionVector2
# GetContactColliderVelocityAtPosition
C#
public Vector2 GetContactColliderVelocityAtPosition(int contactIdx);

Возвращает вектор скорости в точке контакта коллайдера.

Параметры
ИмяТипПо умолчанию
contactIdxint—
Возвращает Vector2
GetContactCountint
# GetContactCount
C#
public int GetContactCount();

Возвращает количество контактов этого тела с другими телами. Примечание: По умолчанию возвращается 0, если тела не настроены на мониторинг контактов. См. RigidBody2D.ContactMonitor.

Возвращает int
GetContactImpulseVector2
# GetContactImpulse
C#
public Vector2 GetContactImpulse(int contactIdx);

Возвращает импульс, созданный контактом.

Параметры
ИмяТипПо умолчанию
contactIdxint—
Возвращает Vector2
GetContactLocalNormalVector2
# GetContactLocalNormal
C#
public Vector2 GetContactLocalNormal(int contactIdx);

Возвращает локальную нормаль в точке контакта.

Параметры
ИмяТипПо умолчанию
contactIdxint—
Возвращает Vector2
GetContactLocalPositionVector2
# GetContactLocalPosition
C#
public Vector2 GetContactLocalPosition(int contactIdx);

Возвращает положение точки контакта на теле в глобальной системе координат.

Параметры
ИмяТипПо умолчанию
contactIdxint—
Возвращает Vector2
GetContactLocalShapeint
# GetContactLocalShape
C#
public int GetContactLocalShape(int contactIdx);

Возвращает локальный индекс формы столкновения.

Параметры
ИмяТипПо умолчанию
contactIdxint—
Возвращает int
GetContactLocalVelocityAtPositionVector2
# GetContactLocalVelocityAtPosition
C#
public Vector2 GetContactLocalVelocityAtPosition(int contactIdx);

Возвращает вектор скорости в точке контакта тела.

Параметры
ИмяТипПо умолчанию
contactIdxint—
Возвращает Vector2
GetInverseInertiafloat
# GetInverseInertia
C#
public float GetInverseInertia();
Возвращает float
GetInverseMassfloat
# GetInverseMass
C#
public float GetInverseMass();
Возвращает float
GetLinearVelocityVector2
# GetLinearVelocity
C#
public Vector2 GetLinearVelocity();
Возвращает Vector2
GetSpaceStatePhysicsDirectSpaceState2D
# GetSpaceState
C#
public PhysicsDirectSpaceState2D GetSpaceState();

Возвращает текущее состояние пространства, полезно для запросов.

Возвращает PhysicsDirectSpaceState2D
GetStepfloat
# GetStep
C#
public float GetStep();
Возвращает float
GetTotalAngularDampfloat
# GetTotalAngularDamp
C#
public float GetTotalAngularDamp();
Возвращает float
GetTotalGravityVector2
# GetTotalGravity
C#
public Vector2 GetTotalGravity();
Возвращает Vector2
GetTotalLinearDampfloat
# GetTotalLinearDamp
C#
public float GetTotalLinearDamp();
Возвращает float
GetTransformTransform2D
# GetTransform
C#
public Transform2D GetTransform();
Возвращает Transform2D
GetVelocityAtLocalPositionVector2
# GetVelocityAtLocalPosition
C#
public Vector2 GetVelocityAtLocalPosition(Vector2 localPosition);

Возвращает скорость тела в заданном относительном положении. local_position — смещение относительно начала координат тела в глобальных координатах.

Параметры
ИмяТипПо умолчанию
localPositionVector2—
Возвращает Vector2
IntegrateForcesvoid
# IntegrateForces
C#
public void IntegrateForces();

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

IsSleepingbool
# IsSleeping
C#
public bool IsSleeping();
Возвращает bool
SetAngularVelocityvoid
# SetAngularVelocity
C#
public void SetAngularVelocity(float velocity);
Параметры
ИмяТипПо умолчанию
velocityfloat—
SetCollisionLayervoid
# SetCollisionLayer
C#
public void SetCollisionLayer(uint layer);
Параметры
ИмяТипПо умолчанию
layeruint—
SetCollisionMaskvoid
# SetCollisionMask
C#
public void SetCollisionMask(uint mask);
Параметры
ИмяТипПо умолчанию
maskuint—
SetConstantForcevoid
# SetConstantForce
C#
public void SetConstantForce(Vector2 force);

Устанавливает общие постоянные позиционные силы тела, применяемые во время каждого обновления физики. См. PhysicsDirectBodyState2D.AddConstantForce и PhysicsDirectBodyState2D.AddConstantCentralForce.

Параметры
ИмяТипПо умолчанию
forceVector2—
SetConstantTorquevoid
# SetConstantTorque
C#
public void SetConstantTorque(float torque);

Устанавливает общие постоянные вращательные силы тела, применяемые во время каждого обновления физики. См. PhysicsDirectBodyState2D.AddConstantTorque.

Параметры
ИмяТипПо умолчанию
torquefloat—
SetLinearVelocityvoid
# SetLinearVelocity
C#
public void SetLinearVelocity(Vector2 velocity);
Параметры
ИмяТипПо умолчанию
velocityVector2—
SetSleepStatevoid
# SetSleepState
C#
public void SetSleepState(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetTransformvoid
# SetTransform
C#
public void SetTransform(Transform2D transform);
Параметры
ИмяТипПо умолчанию
transformTransform2D—
Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

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

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

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