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 дозволяє отримати більше одного результату зіткнення.