mirror of
https://github.com/godotengine/godot-docs-l10n.git
synced 2026-01-05 14:10:19 +03:00
504 lines
29 KiB
ReStructuredText
504 lines
29 KiB
ReStructuredText
:github_url: hide
|
||
|
||
.. _class_RayCast3D:
|
||
|
||
RayCast3D
|
||
=========
|
||
|
||
**Успадковує:** :ref:`Node3D<class_Node3D>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
|
||
|
||
Промінь у тривимірному просторі, що використовується для знаходження першого об'єкта зіткнення, з яким він перетинається.
|
||
|
||
.. rst-class:: classref-introduction-group
|
||
|
||
Опис
|
||
--------
|
||
|
||
Raycast представляє промінь від його початку до його :ref:`target_position<class_RayCast3D_property_target_position>`, який знаходить найближчий об’єкт на своєму шляху, якщо він перетинає будь-який.
|
||
|
||
\ **RayCast3D** може ігнорувати деякі об’єкти, додаючи їх до списку винятків, ігноруючи звіти про виявлення :ref:`Area3D<class_Area3D>` (:ref:`collide_with_areas<class_RayCast3D_property_collide_with_areas>`) або :ref:`PhysicsBody3D<class_PhysicsBody3D>` (:ref:`collide_with_bodies<class_RayCast3D_property_collide_with_bodies>`), або налаштовуючи фізичні шари.
|
||
|
||
\ **RayCast3D** обчислює перетин кожного фізичного кадру та зберігає результат до наступного фізичного кадру. Для негайного raycast або якщо ви хочете налаштувати **RayCast3D** кілька разів у межах одного фізичного кадру, використовуйте :ref:`force_raycast_update()<class_RayCast3D_method_force_raycast_update>`.
|
||
|
||
Щоб охопити область 3D-простору, ви можете наблизити область за допомогою кількох **RayCast3D** або використати :ref:`ShapeCast3D<class_ShapeCast3D>`.
|
||
|
||
.. rst-class:: classref-introduction-group
|
||
|
||
Посібники
|
||
------------------
|
||
|
||
- :doc:`Рей-розміщення <../tutorials/physics/ray-casting>`
|
||
|
||
- `Демонстрація 3D вокселів <https://godotengine.org/asset-library/asset/2755>`__
|
||
|
||
.. rst-class:: classref-reftable-group
|
||
|
||
Властивості
|
||
----------------------
|
||
|
||
.. table::
|
||
:widths: auto
|
||
|
||
+-------------------------------+------------------------------------------------------------------------------------+-----------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`collide_with_areas<class_RayCast3D_property_collide_with_areas>` | ``false`` |
|
||
+-------------------------------+------------------------------------------------------------------------------------+-----------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`collide_with_bodies<class_RayCast3D_property_collide_with_bodies>` | ``true`` |
|
||
+-------------------------------+------------------------------------------------------------------------------------+-----------------------+
|
||
| :ref:`int<class_int>` | :ref:`collision_mask<class_RayCast3D_property_collision_mask>` | ``1`` |
|
||
+-------------------------------+------------------------------------------------------------------------------------+-----------------------+
|
||
| :ref:`Color<class_Color>` | :ref:`debug_shape_custom_color<class_RayCast3D_property_debug_shape_custom_color>` | ``Color(0, 0, 0, 1)`` |
|
||
+-------------------------------+------------------------------------------------------------------------------------+-----------------------+
|
||
| :ref:`int<class_int>` | :ref:`debug_shape_thickness<class_RayCast3D_property_debug_shape_thickness>` | ``2`` |
|
||
+-------------------------------+------------------------------------------------------------------------------------+-----------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`enabled<class_RayCast3D_property_enabled>` | ``true`` |
|
||
+-------------------------------+------------------------------------------------------------------------------------+-----------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`exclude_parent<class_RayCast3D_property_exclude_parent>` | ``true`` |
|
||
+-------------------------------+------------------------------------------------------------------------------------+-----------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`hit_back_faces<class_RayCast3D_property_hit_back_faces>` | ``true`` |
|
||
+-------------------------------+------------------------------------------------------------------------------------+-----------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`hit_from_inside<class_RayCast3D_property_hit_from_inside>` | ``false`` |
|
||
+-------------------------------+------------------------------------------------------------------------------------+-----------------------+
|
||
| :ref:`Vector3<class_Vector3>` | :ref:`target_position<class_RayCast3D_property_target_position>` | ``Vector3(0, -1, 0)`` |
|
||
+-------------------------------+------------------------------------------------------------------------------------+-----------------------+
|
||
|
||
.. rst-class:: classref-reftable-group
|
||
|
||
Методи
|
||
------------
|
||
|
||
.. table::
|
||
:widths: auto
|
||
|
||
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`add_exception<class_RayCast3D_method_add_exception>`\ (\ node\: :ref:`CollisionObject3D<class_CollisionObject3D>`\ ) |
|
||
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`add_exception_rid<class_RayCast3D_method_add_exception_rid>`\ (\ rid\: :ref:`RID<class_RID>`\ ) |
|
||
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`clear_exceptions<class_RayCast3D_method_clear_exceptions>`\ (\ ) |
|
||
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`force_raycast_update<class_RayCast3D_method_force_raycast_update>`\ (\ ) |
|
||
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`Object<class_Object>` | :ref:`get_collider<class_RayCast3D_method_get_collider>`\ (\ ) |const| |
|
||
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`RID<class_RID>` | :ref:`get_collider_rid<class_RayCast3D_method_get_collider_rid>`\ (\ ) |const| |
|
||
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`get_collider_shape<class_RayCast3D_method_get_collider_shape>`\ (\ ) |const| |
|
||
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`get_collision_face_index<class_RayCast3D_method_get_collision_face_index>`\ (\ ) |const| |
|
||
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`get_collision_mask_value<class_RayCast3D_method_get_collision_mask_value>`\ (\ layer_number\: :ref:`int<class_int>`\ ) |const| |
|
||
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`Vector3<class_Vector3>` | :ref:`get_collision_normal<class_RayCast3D_method_get_collision_normal>`\ (\ ) |const| |
|
||
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`Vector3<class_Vector3>` | :ref:`get_collision_point<class_RayCast3D_method_get_collision_point>`\ (\ ) |const| |
|
||
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`is_colliding<class_RayCast3D_method_is_colliding>`\ (\ ) |const| |
|
||
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`remove_exception<class_RayCast3D_method_remove_exception>`\ (\ node\: :ref:`CollisionObject3D<class_CollisionObject3D>`\ ) |
|
||
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`remove_exception_rid<class_RayCast3D_method_remove_exception_rid>`\ (\ rid\: :ref:`RID<class_RID>`\ ) |
|
||
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`set_collision_mask_value<class_RayCast3D_method_set_collision_mask_value>`\ (\ layer_number\: :ref:`int<class_int>`, value\: :ref:`bool<class_bool>`\ ) |
|
||
+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
|
||
.. rst-class:: classref-section-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-descriptions-group
|
||
|
||
Описи властивостей
|
||
------------------------------------
|
||
|
||
.. _class_RayCast3D_property_collide_with_areas:
|
||
|
||
.. rst-class:: classref-property
|
||
|
||
:ref:`bool<class_bool>` **collide_with_areas** = ``false`` :ref:`🔗<class_RayCast3D_property_collide_with_areas>`
|
||
|
||
.. rst-class:: classref-property-setget
|
||
|
||
- |void| **set_collide_with_areas**\ (\ value\: :ref:`bool<class_bool>`\ )
|
||
- :ref:`bool<class_bool>` **is_collide_with_areas_enabled**\ (\ )
|
||
|
||
``true``, зіткнення з :ref:`Area3D<class_Area3D>` будуть повідомлені.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_property_collide_with_bodies:
|
||
|
||
.. rst-class:: classref-property
|
||
|
||
:ref:`bool<class_bool>` **collide_with_bodies** = ``true`` :ref:`🔗<class_RayCast3D_property_collide_with_bodies>`
|
||
|
||
.. rst-class:: classref-property-setget
|
||
|
||
- |void| **set_collide_with_bodies**\ (\ value\: :ref:`bool<class_bool>`\ )
|
||
- :ref:`bool<class_bool>` **is_collide_with_bodies_enabled**\ (\ )
|
||
|
||
``true``, зіткнення з :ref:`PhysicsBody3D<class_PhysicsBody3D>` будуть повідомлені.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_property_collision_mask:
|
||
|
||
.. rst-class:: classref-property
|
||
|
||
:ref:`int<class_int>` **collision_mask** = ``1`` :ref:`🔗<class_RayCast3D_property_collision_mask>`
|
||
|
||
.. rst-class:: classref-property-setget
|
||
|
||
- |void| **set_collision_mask**\ (\ value\: :ref:`int<class_int>`\ )
|
||
- :ref:`int<class_int>` **get_collision_mask**\ (\ )
|
||
|
||
Маска зіткнення променів. Виявлено лише об’єкти, що не менше одного з шарів зіткнення. Див. `Коллізійні шари та маски <../tutorials/physics/physics_introduction.html#collision-layers-and-masks>`__ в документації для отримання додаткової інформації.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_property_debug_shape_custom_color:
|
||
|
||
.. rst-class:: classref-property
|
||
|
||
:ref:`Color<class_Color>` **debug_shape_custom_color** = ``Color(0, 0, 0, 1)`` :ref:`🔗<class_RayCast3D_property_debug_shape_custom_color>`
|
||
|
||
.. rst-class:: classref-property-setget
|
||
|
||
- |void| **set_debug_shape_custom_color**\ (\ value\: :ref:`Color<class_Color>`\ )
|
||
- :ref:`Color<class_Color>` **get_debug_shape_custom_color**\ (\ )
|
||
|
||
У меню **Debug** ввімкнено ** користувацький колорит **. Цей колір буде виділений в режимі run-time, якщо **RayCast3D** є співвідношенні з чимось.
|
||
|
||
Якщо встановити на ``Color(0.0, 0.0, 0.0)`` (за замовчуванням), колір встановлюється в :ref:`ProjectSettings.debug/shapes/collision/shape_color<class_ProjectSettings_property_debug/shapes/collision/shape_color>`.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_property_debug_shape_thickness:
|
||
|
||
.. rst-class:: classref-property
|
||
|
||
:ref:`int<class_int>` **debug_shape_thickness** = ``2`` :ref:`🔗<class_RayCast3D_property_debug_shape_thickness>`
|
||
|
||
.. rst-class:: classref-property-setget
|
||
|
||
- |void| **set_debug_shape_thickness**\ (\ value\: :ref:`int<class_int>`\ )
|
||
- :ref:`int<class_int>` **get_debug_shape_thickness**\ (\ )
|
||
|
||
Якщо встановити до ``1``, то рядок використовується як форма дебюг. В іншому випадку обрізається обрізна піраміда для представлення **RayCast3D**. Потрібні **Відомі фігури Collision**, щоб бути ввімкнені в меню **Debug** для форми debug, щоб бути видимими на run-time.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_property_enabled:
|
||
|
||
.. rst-class:: classref-property
|
||
|
||
:ref:`bool<class_bool>` **enabled** = ``true`` :ref:`🔗<class_RayCast3D_property_enabled>`
|
||
|
||
.. rst-class:: classref-property-setget
|
||
|
||
- |void| **set_enabled**\ (\ value\: :ref:`bool<class_bool>`\ )
|
||
- :ref:`bool<class_bool>` **is_enabled**\ (\ )
|
||
|
||
Якщо ``true`` будуть повідомлені зіткнення.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_property_exclude_parent:
|
||
|
||
.. rst-class:: classref-property
|
||
|
||
:ref:`bool<class_bool>` **exclude_parent** = ``true`` :ref:`🔗<class_RayCast3D_property_exclude_parent>`
|
||
|
||
.. rst-class:: classref-property-setget
|
||
|
||
- |void| **set_exclude_parent_body**\ (\ value\: :ref:`bool<class_bool>`\ )
|
||
- :ref:`bool<class_bool>` **get_exclude_parent_body**\ (\ )
|
||
|
||
Якщо значення ``true``, цей raycast не повідомлятиме про зіткнення з батьківським вузлом. Ця властивість має ефект лише в тому випадку, якщо батьківський вузол є :ref:`CollisionObject3D<class_CollisionObject3D>`. Див. також :ref:`Node.get_parent()<class_Node_method_get_parent>` та :ref:`add_exception()<class_RayCast3D_method_add_exception>`.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_property_hit_back_faces:
|
||
|
||
.. rst-class:: classref-property
|
||
|
||
:ref:`bool<class_bool>` **hit_back_faces** = ``true`` :ref:`🔗<class_RayCast3D_property_hit_back_faces>`
|
||
|
||
.. rst-class:: classref-property-setget
|
||
|
||
- |void| **set_hit_back_faces**\ (\ value\: :ref:`bool<class_bool>`\ )
|
||
- :ref:`bool<class_bool>` **is_hit_back_faces_enabled**\ (\ )
|
||
|
||
Якщо ``true``, промінь подарує спинки обличчям з застібкою полігонних форм з заднім обличчям увімкненими або висотними формами.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_property_hit_from_inside:
|
||
|
||
.. rst-class:: classref-property
|
||
|
||
:ref:`bool<class_bool>` **hit_from_inside** = ``false`` :ref:`🔗<class_RayCast3D_property_hit_from_inside>`
|
||
|
||
.. rst-class:: classref-property-setget
|
||
|
||
- |void| **set_hit_from_inside**\ (\ value\: :ref:`bool<class_bool>`\ )
|
||
- :ref:`bool<class_bool>` **is_hit_from_inside_enabled**\ (\ )
|
||
|
||
Якщо ``true``, промінь виявить удар при запуску внутрішніх форм. У цьому випадку норма зіткнення буде ``Vector3(0, 0, 0)``. Чи не впливає на форми без об'єму, як приховати полігон або карту висоти.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_property_target_position:
|
||
|
||
.. rst-class:: classref-property
|
||
|
||
:ref:`Vector3<class_Vector3>` **target_position** = ``Vector3(0, -1, 0)`` :ref:`🔗<class_RayCast3D_property_target_position>`
|
||
|
||
.. rst-class:: classref-property-setget
|
||
|
||
- |void| **set_target_position**\ (\ value\: :ref:`Vector3<class_Vector3>`\ )
|
||
- :ref:`Vector3<class_Vector3>` **get_target_position**\ (\ )
|
||
|
||
Точка призначення променя відносно цього променевого потоку :ref:`Node3D.position<class_Node3D_property_position>`.
|
||
|
||
.. rst-class:: classref-section-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-descriptions-group
|
||
|
||
Описи методів
|
||
--------------------------
|
||
|
||
.. _class_RayCast3D_method_add_exception:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **add_exception**\ (\ node\: :ref:`CollisionObject3D<class_CollisionObject3D>`\ ) :ref:`🔗<class_RayCast3D_method_add_exception>`
|
||
|
||
Додає виняток колізії, щоб промінь не повідомляв про колізії із зазначеним вузлом ``node``.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_method_add_exception_rid:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **add_exception_rid**\ (\ rid\: :ref:`RID<class_RID>`\ ) :ref:`🔗<class_RayCast3D_method_add_exception_rid>`
|
||
|
||
Додає виключення зіткнення, тому промінь не повідомляє зіткнення з вказаною :ref:`RID<class_RID>`.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_method_clear_exceptions:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **clear_exceptions**\ (\ ) :ref:`🔗<class_RayCast3D_method_clear_exceptions>`
|
||
|
||
Видаліть всі винятки зіткнення для цього променя.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_method_force_raycast_update:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **force_raycast_update**\ (\ ) :ref:`🔗<class_RayCast3D_method_force_raycast_update>`
|
||
|
||
Оновлення інформації про зіткнення для променя відразу, не чекаючи наступного ``_physics_process`` виклику. Використовуйте цей метод, наприклад, при зміні стану променя або його батьків.
|
||
|
||
\ **Примітка:** :ref:`enabled<class_RayCast3D_property_enabled>` не потрібно ``true`` для цього для роботи.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_method_get_collider:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`Object<class_Object>` **get_collider**\ (\ ) |const| :ref:`🔗<class_RayCast3D_method_get_collider>`
|
||
|
||
Повертає перший об’єкт, який перетинає промінь, або ``null``, якщо жоден об’єкт не перетинає промінь (тобто :ref:`is_colliding()<class_RayCast3D_method_is_colliding>` повертає ``false``).
|
||
|
||
\ **Примітка: ** Цей об’єкт не гарантовано буде :ref:`CollisionObject3D<class_CollisionObject3D>`. Наприклад, якщо промінь перетинає :ref:`CSGShape3D<class_CSGShape3D>` або :ref:`GridMap<class_GridMap>`, метод поверне екземпляр :ref:`CSGShape3D<class_CSGShape3D>` або :ref:`GridMap<class_GridMap>`.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_method_get_collider_rid:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`RID<class_RID>` **get_collider_rid**\ (\ ) |const| :ref:`🔗<class_RayCast3D_method_get_collider_rid>`
|
||
|
||
Повертає :ref:`RID<class_RID>` першого об'єкта, який перетинає промінь, або порожнє значення :ref:`RID<class_RID>`, якщо жоден об'єкт не перетинає промінь (тобто :ref:`is_colliding()<class_RayCast3D_method_is_colliding>` повертає ``false``).
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_method_get_collider_shape:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **get_collider_shape**\ (\ ) |const| :ref:`🔗<class_RayCast3D_method_get_collider_shape>`
|
||
|
||
Повертає ідентифікатор форми першого об’єкта, який перетинає промінь, або ``0``, якщо жоден об’єкт не перетинає промінь (тобто :ref:`is_colliding()<class_RayCast3D_method_is_colliding>` повертає ``false``).
|
||
|
||
Щоб отримати пересічний вузол фігури для цілі :ref:`CollisionObject3D<class_CollisionObject3D>`, використовуйте:
|
||
|
||
|
||
.. tabs::
|
||
|
||
.. code-tab:: gdscript
|
||
|
||
var target = get_collider() # CollisionObject3D.
|
||
var shape_id = get_collider_shape() # Індекс форми в коллайдері.
|
||
var owner_id = target.shape_find_owner(shape_id) # Ідентифікатор власника в коллайдері.
|
||
var shape = target.shape_owner_get_owner(owner_id)
|
||
|
||
.. code-tab:: csharp
|
||
|
||
var target = (CollisionObject3D)GetCollider(); // CollisionObject3D.
|
||
var shapeId = GetColliderShape(); // Індекс форми в коллайдері.
|
||
var ownerId = target.ShapeFindOwner(shapeId); // ID власника в колайдері.
|
||
var shape = target.ShapeOwnerGetOwner(ownerId);
|
||
|
||
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_method_get_collision_face_index:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **get_collision_face_index**\ (\ ) |const| :ref:`🔗<class_RayCast3D_method_get_collision_face_index>`
|
||
|
||
Повернення індексу зіткнення на місці зіткнення, або ``-1``, якщо форма перетинає променя не є :ref:`ConcavePolygonShape3D<class_ConcavePolygonShape3D>`.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_method_get_collision_mask_value:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **get_collision_mask_value**\ (\ layer_number\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_RayCast3D_method_get_collision_mask_value>`
|
||
|
||
Повертаємо, чи не вказаний шар :ref:`collision_layer<class_RayCast3D_property_collision_layer>`, враховуючи ``layer_number`` між 1 і 32.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_method_get_collision_normal:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`Vector3<class_Vector3>` **get_collision_normal**\ (\ ) |const| :ref:`🔗<class_RayCast3D_method_get_collision_normal>`
|
||
|
||
Повертає нормаль форми об'єкта, що перетинається, у точці зіткнення, або ``Vector3(0, 0, 0)``, якщо промінь починається всередині форми, а :ref:`hit_from_inside<class_RayCast3D_property_hit_from_inside>` має значення ``true``.
|
||
|
||
\ **Примітка:** Переконайтеся, що :ref:`is_colliding()<class_RayCast3D_method_is_colliding>` повертає ``true`` перед викликом цього методу, щоб переконатися, що повернена нормаль є коректною та актуальною.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_method_get_collision_point:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`Vector3<class_Vector3>` **get_collision_point**\ (\ ) |const| :ref:`🔗<class_RayCast3D_method_get_collision_point>`
|
||
|
||
Повертає точку зіткнення, в якій промінь перетинає найближчий об'єкт у глобальній системі координат. Якщо :ref:`hit_from_inside<class_RayCast3D_property_hit_from_inside>` має значення ``true``, а промінь починається всередині фігури зіткнення, ця функція поверне точку початку координат променя.
|
||
|
||
\ **Примітка:** Переконайтеся, що :ref:`is_colliding()<class_RayCast3D_method_is_colliding>` повертає ``true`` перед викликом цього методу, щоб переконатися, що повернута точка є коректною та актуальною.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_method_is_colliding:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **is_colliding**\ (\ ) |const| :ref:`🔗<class_RayCast3D_method_is_colliding>`
|
||
|
||
Повертає будь-який об'єкт, що перетинається з вектором променя (визнання довжини вектора).
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_method_remove_exception:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **remove_exception**\ (\ node\: :ref:`CollisionObject3D<class_CollisionObject3D>`\ ) :ref:`🔗<class_RayCast3D_method_remove_exception>`
|
||
|
||
Видаляє виняток зіткнення, щоб промінь міг повідомляти про зіткнення із зазначеним ``node``.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_method_remove_exception_rid:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **remove_exception_rid**\ (\ rid\: :ref:`RID<class_RID>`\ ) :ref:`🔗<class_RayCast3D_method_remove_exception_rid>`
|
||
|
||
Видаляє виняток колізії, щоб промінь міг повідомляти про колізії із зазначеним :ref:`RID<class_RID>`.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_RayCast3D_method_set_collision_mask_value:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **set_collision_mask_value**\ (\ layer_number\: :ref:`int<class_int>`, value\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_RayCast3D_method_set_collision_mask_value>`
|
||
|
||
На основі ``value``, умикає чи вимикає зазначений шар в :ref:`collision_mask<class_RayCast3D_property_collision_mask>`, для ``layer_number`` між 1 і 32.
|
||
|
||
.. |virtual| replace:: :abbr:`virtual (Зазвичай, цей метод перевизначається користувачем, щоб він мав вплив.)`
|
||
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
|
||
.. |const| replace:: :abbr:`const (Цей метод не має побічних ефектів. Не змінює ніяку змінну екземпляра об'єкта.)`
|
||
.. |vararg| replace:: :abbr:`vararg (Цей метод приймає будь-яке число аргументів після описаних тут.)`
|
||
.. |constructor| replace:: :abbr:`constructor (Цей метод використовується для побудови типів.)`
|
||
.. |static| replace:: :abbr:`static (Цей метод не потребує екземпляра для виклику, його можна викликати безпосередньо за допомогою назви класу.)`
|
||
.. |operator| replace:: :abbr:`operator (Цей метод описує дійсний оператор для взаємодії з цим типом як з лівим операндом.)`
|
||
.. |bitfield| replace:: :abbr:`BitField (Це значення є цілим числом, складеним у вигляді бітової маски з наступних прапорів.)`
|
||
.. |void| replace:: :abbr:`void (Значення не повертається.)`
|