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...
PhysicsDirectSpaceState3D
Успадковує: Object
Успадковано від: PhysicsDirectSpaceState3DExtension
Забезпечує прямий доступ до фізичного простору в PhysicsServer3D.
Опис
Надає прямий доступ до фізичного простору в PhysicsServer3D. Він використовується переважно для виконання запитів до об'єктів та областей, що знаходяться в заданому просторі.
Примітка: Цей клас не призначений для безпосереднього створення екземплярів. Використовуйте World3D.direct_space_state, щоб отримати стан тривимірного фізичного простору світу.
Посібники
Методи
cast_motion(parameters: PhysicsShapeQueryParameters3D) |
|
collide_shape(parameters: PhysicsShapeQueryParameters3D, max_results: int = 32) |
|
get_rest_info(parameters: PhysicsShapeQueryParameters3D) |
|
intersect_point(parameters: PhysicsPointQueryParameters3D, max_results: int = 32) |
|
intersect_ray(parameters: PhysicsRayQueryParameters3D) |
|
intersect_shape(parameters: PhysicsShapeQueryParameters3D, max_results: int = 32) |
Описи методів
PackedFloat32Array cast_motion(parameters: PhysicsShapeQueryParameters3D) 🔗
Перевіряє, наскільки далеко може рухатися Shape3D без зіткнення. Усі параметри запиту, включаючи фігуру та рух, надаються через об'єкт PhysicsShapeQueryParameters3D.
Повертає масив із безпечними та небезпечними пропорціями (між 0 та 1) руху. Безпечна пропорція – це максимальна частка руху, яку можна здійснити без зіткнення. Небезпечна пропорція – це мінімальна частка відстані, на яку потрібно переміститися для зіткнення. Якщо зіткнення не виявлено, буде повернуто результат [1.0, 1.0].
Примітка: Будь-які Shape3D, з якими фігура вже зіткнеться, наприклад, всередині, будуть ігноруватися. Використовуйте метод collide_shape, щоб визначити Shape3D, з якими фігура вже зіткнеться.
Array[Vector3] collide_shape(parameters: PhysicsShapeQueryParameters3D, max_results: int = 32) 🔗
Перевіряє перехрестя форми, за допомогою PhysicsShapeQueryParameters3D об'єкта, проти простору. Отриманий масив містить список точок, де форма перетинає інший. Як і з intersect_shape(), кількість отриманих результатів можна обмежити час обробки.
Повернення очок - список пар контактних точок. Для кожної пари перша у формі, що пропущена в PhysicsShapeQueryParameters3D об'єкт, другий - у складеній формі з фізичного простору.
Примітка: Цей метод не враховує motion властивість об'єкту.
Dictionary get_rest_info(parameters: PhysicsShapeQueryParameters3D) 🔗
Перевіряє перетини фігури, заданої через об’єкт PhysicsShapeQueryParameters3D, з пробілом. Якщо вона стикається з кількома фігурами, вибирається найближча. Повернений об’єкт – це словник, що містить такі поля:
collider_id: ідентифікатор об’єкта зіткнення.
лінійна_швидкість: швидкість об’єкта, що зіткнувся Vector3. Якщо об’єкт є Area3D, результатом є (0, 0, 0).
нормаль: нормаль зіткнення фігури запиту в точці перетину, спрямована від об’єкта, що перетинається.
точка: точка перетину.
rid: RID об’єкта, що перетинається.
форма: індекс фігури, що зіштовхується.
Якщо фігура нічого не перетинає, замість неї повертається порожній словник.
Примітка. Цей метод не враховує властивість motion об’єкта.
Array[Dictionary] intersect_point(parameters: PhysicsPointQueryParameters3D, max_results: int = 32) 🔗
Перевірте, чи є точка всередині будь-якої твердої форми. Положення та інші параметри визначаються за допомогою PhysicsPointQueryParameters3D. Форми точки всередині подаються в масиві, що містить словники з наступними полями:
collider: Об'єкт зв'язку.
collider_id: Код об'єкта.
rid: Інтерсекційний об'єкт RID.
`` форма``: Індекс форми згортання форми.
Кількість перехрестя може бути обмежена параметром max_results, щоб скоротити час обробки.
Dictionary intersect_ray(parameters: PhysicsRayQueryParameters3D) 🔗
Включає промінь в заданому просторі. Рентгенівська позиція та інші параметри визначаються за допомогою PhysicsRayQueryParameters3D. Повернутий об'єкт є словником з наступними полями:
collider: Об'єкт зв'язку.
collider_id: Код об'єкта.
нормальний: Нормальною поверхнею об'єкта на місці перетину, або Vector3(0, 0, 0), якщо промен починається всередині форми і PhysicsRayQueryParameters3D.hit_from_inside є true.
позиція: Точка перетину.
face_index: Індекс обличчя на перетині точки.
Примітка: Повертає дійсний номер тільки якщо міжсектифікована форма є ConcavePolygonShape3D. В іншому випадку -1 повертається.
`` рід``: Інтерсекційний об'єкт RID.
`` форма``: Індекс форми згортання форми.
Якщо промен не перев'язував нічого, то повернувся порожній словник.
Array[Dictionary] intersect_shape(parameters: PhysicsShapeQueryParameters3D, max_results: int = 32) 🔗
Перевіряє перехрестя форми, за допомогою PhysicsShapeQueryParameters3D об'єкта, проти простору. У масиві, що містить словники з наступними полями:
collider: Об'єкт зв'язку.
collider_id: Код об'єкта.
rid: Інтерсекційний об'єкт RID.
`` форма ``: Індекс форми згортання форми.
Кількість перехрестя може бути обмежена параметром max_results, щоб скоротити час обробки.
Примітка: Цей метод не враховує motion властивість об'єкту.