Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
PhysicsDirectBodyState3D
Успадковує: Object
Успадковано від: PhysicsDirectBodyState3DExtension
Забезпечує прямий доступ до фізичного тіла в PhysicsServer3D.
Опис
Забезпечує прямий доступ до фізичного тіла в PhysicsServer3D, що дозволяє безпечні зміни фізико-фізичних властивостей. Цей об'єкт пропускається через прямий державний зворотний зв'язок RigidBody3D, і призначений для зміни безпосереднього стану цього тіла. RigidBody3D._integrate_forces().
Посібники
Властивості
Методи
Описи властивостей
Швидкість обертання тіла в radians за секунду.
Vector3 get_center_of_mass()
Центр маси тіла відносно центру тіла у глобальній координатній системі.
Vector3 center_of_mass_local 🔗
Vector3 get_center_of_mass_local()
Центр маси тіла в локальній координатній системі тіла.
Шар зіткнення тіла.
Маска зіткнення тіла.
Vector3 get_inverse_inertia()
Інверс інерції тіла.
Basis inverse_inertia_tensor 🔗
Basis get_inverse_inertia_tensor()
Інверс інерції тензора тіла.
float get_inverse_mass()
Інверс маси тіла.
Лінійна швидкість тіла в блоках на секунду.
Basis principal_inertia_axes 🔗
Basis get_principal_inertia_axes()
There is currently no description for this property. Please help us by contributing one!
Якщо true, це тіло зараз спить (не активний).
float get_step()
Часовий (delta) використовується для моделювання.
float get_total_angular_damp()
Швидкість, при якій тіло припиняє обертати, якщо інші сили не рухаються.
Vector3 get_total_gravity()
Вектор загальної ваги в даний час застосовується до цього тіла.
float get_total_linear_damp()
Швидкість, при якій тіло припиняє рух, якщо інші сили не рухаються.
Transform3D transform 🔗
void set_transform(value: Transform3D)
Transform3D get_transform()
Матриця трансформації тіла.
Описи методів
void add_constant_central_force(force: Vector3 = Vector3(0, 0, 0)) 🔗
Додавання постійної спрямованої сили без ударної обертання, яка зберігає час, поки не очищається constant_force = Vector3(0, 0).
Це еквівалентно використанню add_constant_force() в центрі маси тіла.
void add_constant_force(force: Vector3, position: Vector3 = Vector3(0, 0, 0)) 🔗
Додавання постійної позиціонованої сили до тіла, яка зберігає час, поки не очищається constant_force = Vector2(0, 0).
position – це зміщення з організму в глобальних координатах.
void add_constant_torque(torque: Vector3) 🔗
Додавання постійної обертальної сили без впливу положення, яка зберігає час, поки не очищається constant_torque = Vector3(0, 0).
void apply_central_force(force: Vector3 = Vector3(0, 0, 0)) 🔗
Застосовується спрямована сила без ударного обертання. Знаряддя часу залежна і означена для кожного оновлення фізики.
Це еквівалентно використання apply_force() в центрі маси тіла.
void apply_central_impulse(impulse: Vector3 = Vector3(0, 0, 0)) 🔗
Застосовується спрямований імпульс без впливу обертання.
Імпульс часозалежний! Нанесення імпульсу кожного кадру призведе до каркасно-залежної сили. З цієї причини слід використовувати тільки при симуляції одноразових ударів (користування функції "_сил" інакше).
Це еквівалентно використання apply_impulse() в центрі маси тіла.
void apply_force(force: Vector3, position: Vector3 = Vector3(0, 0, 0)) 🔗
Застосовується сила позиціонування організму. Знаряддя часу залежна і означена для кожного оновлення фізики.
position – це зміщення з організму в глобальних координатах.
void apply_impulse(impulse: Vector3, position: Vector3 = Vector3(0, 0, 0)) 🔗
Застосує поміщений імпульс до тіла.
Імпульс часозалежний! Нанесення імпульсу кожного кадру призведе до каркасно-залежної сили. З цієї причини слід використовувати тільки при симуляції одноразових ударів (користування функції "_сил" інакше).
position – це зміщення з організму в глобальних координатах.
void apply_torque(torque: Vector3) 🔗
Застосовується обертальна сила, не впливає на положення. Знаряддя часу залежна і означена для кожного оновлення фізики.
Примітка: inverse_inertia обов'язковий для цього для роботи. Для того, щоб мати inverse_inertia, активний CollisionShape3D повинен бути дитиною вузла, або ви можете вручну встановити inverse_inertia.
void apply_torque_impulse(impulse: Vector3) 🔗
Застосовує обертальний імпульс до тіла без впливу на положення.
Імпульс часозалежний! Нанесення імпульсу кожного кадру призведе до каркасно-залежної сили. З цієї причини слід використовувати тільки при симуляції одноразових ударів (користування функції "_сил" інакше).
Примітка: inverse_inertia обов'язково для роботи. Для того, щоб мати inverse_inertia, активний CollisionShape3D повинен бути дитиною вузла, або ви можете вручну встановити inverse_inertia.
Vector3 get_constant_force() const 🔗
Під час кожного оновлення фізики повертається загальний стан сил тіла.
Див. add_constant_force() і add_constant_central_force().
Vector3 get_constant_torque() const 🔗
Під час кожного оновлення фізики повернулися загальні постійні обертальні сили.
Див. add_constant_torque().
RID get_contact_collider(contact_idx: int) const 🔗
Повертає увагу RID.
int get_contact_collider_id(contact_idx: int) const 🔗
Повернення об'єкта Collider id.
Object get_contact_collider_object(contact_idx: int) const 🔗
Повертає об'єкт Collider.
Vector3 get_contact_collider_position(contact_idx: int) const 🔗
Повертає позицію контактної точки на Collider у глобальній координатній системі.
int get_contact_collider_shape(contact_idx: int) const 🔗
Повертає індекс форми Collider.
Vector3 get_contact_collider_velocity_at_position(contact_idx: int) const 🔗
Повертає вектор лінійної швидкості на контактній точці комірця.
int get_contact_count() const 🔗
Повертає кількість контактів, що це тіло має інші тіла.
Примітка: За замовчуванням, це повертає 0, якщо органи налаштовані для моніторингу контактів. Див. RigidBody3D.contact_monitor.
Vector3 get_contact_impulse(contact_idx: int) const 🔗
Імпульс, створений контактом.
Vector3 get_contact_local_normal(contact_idx: int) const 🔗
Повертає локальний нормаль в контактній точці.
Vector3 get_contact_local_position(contact_idx: int) const 🔗
Повертає позицію точки контакту на тілі у глобальній координаційній системі.
int get_contact_local_shape(contact_idx: int) const 🔗
Повертає індекс локальної форми зіткнення.
Vector3 get_contact_local_velocity_at_position(contact_idx: int) const 🔗
Повертає вектор лінійної швидкості на контактній точці тіла.
PhysicsDirectSpaceState3D get_space_state() 🔗
Повертає поточний стан простору, корисний для запитів.
Vector3 get_velocity_at_local_position(local_position: Vector3) const 🔗
Повертає швидкість тіла у заданій відносній позиції.
local_position — це зміщення від початку координат тіла у глобальних координатах.
void integrate_forces() 🔗
Оновлює лінійну і кутову швидкість тіла, застосовуючи тяжіння і знешкодження для еквівалента однієї фізичної клітки.
void set_constant_force(force: Vector3) 🔗
Під час кожного оновлення фізики налаштовується загальна констанційна сила тіла.
Див. add_constant_force() і add_constant_central_force().
void set_constant_torque(torque: Vector3) 🔗
Встановлює загальні постійні обертальні сили організму, що застосовуються під час кожного оновлення фізики.
Див. add_constant_torque().