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...
PhysicsBody3D
Успадковує: CollisionObject3D < Node3D < Node < Object
Успадковано від: CharacterBody3D, PhysicalBone3D, RigidBody3D, StaticBody3D
Абстрактний базовий клас для 3D ігрових об'єктів, уражених фізикою.
Опис
PhysicsBody3D є абстрактним базовим класом для 3D ігрових об'єктів, уражених фізикою. Всі 3D фізико-фізичних органів успадкують від неї.
Попередження: З неоднорідною шкалою, цей вузол, ймовірно, не буде поводитися як очікується. Консервувати свою вагову вагу на всіх осях і відрегулювати форму зіткнення.
Посібники
Властивості
|
||
|
||
|
||
|
||
|
||
|
Методи
void |
add_collision_exception_with(body: Node) |
get_axis_lock(axis: BodyAxis) const |
|
get_gravity() const |
|
move_and_collide(motion: Vector3, test_only: bool = false, safe_margin: float = 0.001, recovery_as_collision: bool = false, max_collisions: int = 1) |
|
void |
|
void |
set_axis_lock(axis: BodyAxis, lock: bool) |
test_move(from: Transform3D, motion: Vector3, collision: KinematicCollision3D = null, safe_margin: float = 0.001, recovery_as_collision: bool = false, max_collisions: int = 1) |
Описи властивостей
bool axis_lock_angular_x = false 🔗
Заблокувати обертання тіла в осі X.
bool axis_lock_angular_y = false 🔗
Заблокувати обертання тіла в осі Y.
bool axis_lock_angular_z = false 🔗
Заблокувати обертання тіла в осі Z.
bool axis_lock_linear_x = false 🔗
Заблокувати лінійний рух тіла в осі X.
bool axis_lock_linear_y = false 🔗
Заблокувати лінійний рух тіла в осі Y.
bool axis_lock_linear_z = false 🔗
Заблокувати лінійний рух тіла в осі Z.
Описи методів
void add_collision_exception_with(body: Node) 🔗
Додати тіло до переліку тіл, які це тіло не може поєднуватися з.
bool get_axis_lock(axis: BodyAxis) const 🔗
Повертає true, якщо вказану лінійну або обертальну axis заблоковано.
Array[PhysicsBody3D] get_collision_exceptions() 🔗
Повертає масив вузлів, які були додані як виключення зіткнення для цього тіла.
Повертає вектор тяжіння, що відповідає всім джерелам, які можуть впливати на тіло, в тому числі на перепади ваги з вузлів Area3D і глобальної світової ваги.
KinematicCollision3D move_and_collide(motion: Vector3, test_only: bool = false, safe_margin: float = 0.001, recovery_as_collision: bool = false, max_collisions: int = 1) 🔗
Рухає тіло вздовж вектора motion. Для того, щоб бути частотою кадрів незалежною в Node._physics_process() або Node._process(), руху слід комп'ютерно використовувати delta.
Тіло буде зупинятися, якщо він Collides. Повернутися до KinematicCollision3D, яка містить інформацію про зіткнення при зупинці, або при дотику іншого тіла вздовж руху.
Якщо test_only є true, тіло не рухається, але інформація про зіткнення б-бе.
Safe_margin є додатковим запасом, що використовується для відновлення зіткнення (див. CharacterBody3D.safe_margin для отримання більш детальної інформації).
Якщо Recovery_as_collision є true, будь-яке депенетування з фази відновлення також повідомляється як зіткнення; це використовується наприклад CharacterBody3D для поліпшення виявлення підлоги під час натискання підлоги.
max_collisions дозволяє отримати більше одного результату зіткнення.
void remove_collision_exception_with(body: Node) 🔗
Видаліть тіло з переліку тіл, які це тіло не може зв'язатися з.
void set_axis_lock(axis: BodyAxis, lock: bool) 🔗
Блокує або розблоковує вказану лінійну або обертальну axis залежно від значення lock.
bool test_move(from: Transform3D, motion: Vector3, collision: KinematicCollision3D = null, safe_margin: float = 0.001, recovery_as_collision: bool = false, max_collisions: int = 1) 🔗
Перевірка зіткнень без переміщення тіла. Для того, щоб бути частотою кадрів незалежною в Node._physics_process() або Node._process(), motion слід комп'ютерно використовувати delta.
Практично встановлює позицію вершини, масштаб і обертання до цього Transform3D, потім намагається перемістити тіло вздовж вектора motion. Повертає true, якщо зіткнення зупинить тіло з переміщення по всьому шляху.
collision - це додатковий об'єкт типу KinematicCollision3D, який містить додаткову інформацію про зіткнення при зупинці, або при дотику іншого тіла вздовж руху.
Safe_margin є додатковим запасом, що використовується для відновлення зіткнення (див. CharacterBody3D.safe_margin для отримання більш детальної інформації).
Якщо Recovery_as_collision є true, будь-яке депенетування з фази відновлення також повідомляється як зіткнення; це корисно для перевірки того, чи буде тіло touch будь-які інші тіла.
max_collisions дозволяє отримати більше одного результату зіткнення.