PhysicsDirectSpaceState3D

Успадковує: Object

Успадковано від: PhysicsDirectSpaceState3DExtension

Забезпечує прямий доступ до фізичного простору в PhysicsServer3D.

Опис

Надає прямий доступ до фізичного простору в PhysicsServer3D. Він використовується переважно для виконання запитів до об'єктів та областей, що знаходяться в заданому просторі.

Примітка: Цей клас не призначений для безпосереднього створення екземплярів. Використовуйте World3D.direct_space_state, щоб отримати стан тривимірного фізичного простору світу.

Посібники

Методи

PackedFloat32Array

cast_motion(parameters: PhysicsShapeQueryParameters3D)

Array[Vector3]

collide_shape(parameters: PhysicsShapeQueryParameters3D, max_results: int = 32)

Dictionary

get_rest_info(parameters: PhysicsShapeQueryParameters3D)

Array[Dictionary]

intersect_point(parameters: PhysicsPointQueryParameters3D, max_results: int = 32)

Dictionary

intersect_ray(parameters: PhysicsRayQueryParameters3D)

Array[Dictionary]

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 властивість об'єкту.