Files
godot-docs-l10n/classes/zh_Hans/class_xrpositionaltracker.rst
Rémi Verschelde c3f2364c10 Sync classref with 4.6 branch
Lots of translations invalidated (fuzzied) as we just synced Weblate.
2025-12-19 16:39:51 +01:00

333 lines
16 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. _class_XRPositionalTracker:
XRPositionalTracker
===================
**继承:** :ref:`XRTracker<class_XRTracker>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
**派生:** :ref:`OpenXRSpatialEntityTracker<class_OpenXRSpatialEntityTracker>`, :ref:`XRBodyTracker<class_XRBodyTracker>`, :ref:`XRControllerTracker<class_XRControllerTracker>`, :ref:`XRHandTracker<class_XRHandTracker>`
追踪对象。
.. rst-class:: classref-introduction-group
描述
----
此对象的一个实例表示一个被追踪的设备例如一个控制器或锚点。HMD 没有在此处表示,因为它们是在内部处理的。
当控制器被打开,并且 :ref:`XRInterface<class_XRInterface>` 检测到它们时,该对象的实例会自动被添加到可通过 :ref:`XRServer<class_XRServer>` 访问的活动追踪对象列表中。
\ :ref:`XRNode3D<class_XRNode3D>`:ref:`XRAnchor3D<class_XRAnchor3D>` 都使用这种类型的对象,并且应该在你的项目中使用。位置追踪器只是使这一切正常工作的底层对象。这些大部分都是公开的,以便基于 GDExtension 的接口,可以与它们交互。
.. rst-class:: classref-introduction-group
教程
----
- :doc:`XR 文档索引 <../tutorials/xr/index>`
.. rst-class:: classref-reftable-group
属性
----
.. table::
:widths: auto
+----------------------------------------------------------+------------------------------------------------------------+--------+
| :ref:`TrackerHand<enum_XRPositionalTracker_TrackerHand>` | :ref:`hand<class_XRPositionalTracker_property_hand>` | ``0`` |
+----------------------------------------------------------+------------------------------------------------------------+--------+
| :ref:`String<class_String>` | :ref:`profile<class_XRPositionalTracker_property_profile>` | ``""`` |
+----------------------------------------------------------+------------------------------------------------------------+--------+
.. rst-class:: classref-reftable-group
方法
----
.. table::
:widths: auto
+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Variant<class_Variant>` | :ref:`get_input<class_XRPositionalTracker_method_get_input>`\ (\ name\: :ref:`StringName<class_StringName>`\ ) |const| |
+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`XRPose<class_XRPose>` | :ref:`get_pose<class_XRPositionalTracker_method_get_pose>`\ (\ name\: :ref:`StringName<class_StringName>`\ ) |const| |
+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`has_pose<class_XRPositionalTracker_method_has_pose>`\ (\ name\: :ref:`StringName<class_StringName>`\ ) |const| |
+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`invalidate_pose<class_XRPositionalTracker_method_invalidate_pose>`\ (\ name\: :ref:`StringName<class_StringName>`\ ) |
+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_input<class_XRPositionalTracker_method_set_input>`\ (\ name\: :ref:`StringName<class_StringName>`, value\: :ref:`Variant<class_Variant>`\ ) |
+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_pose<class_XRPositionalTracker_method_set_pose>`\ (\ name\: :ref:`StringName<class_StringName>`, transform\: :ref:`Transform3D<class_Transform3D>`, linear_velocity\: :ref:`Vector3<class_Vector3>`, angular_velocity\: :ref:`Vector3<class_Vector3>`, tracking_confidence\: :ref:`TrackingConfidence<enum_XRPose_TrackingConfidence>`\ ) |
+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
信号
----
.. _class_XRPositionalTracker_signal_button_pressed:
.. rst-class:: classref-signal
**button_pressed**\ (\ name\: :ref:`String<class_String>`\ ) :ref:`🔗<class_XRPositionalTracker_signal_button_pressed>`
当该追踪器上的一个按钮被按下时发出。请注意,许多 XR 运行时允许将其他输入映射到按钮。
.. rst-class:: classref-item-separator
----
.. _class_XRPositionalTracker_signal_button_released:
.. rst-class:: classref-signal
**button_released**\ (\ name\: :ref:`String<class_String>`\ ) :ref:`🔗<class_XRPositionalTracker_signal_button_released>`
当该追踪器上的一个按钮被释放时发出。
.. rst-class:: classref-item-separator
----
.. _class_XRPositionalTracker_signal_input_float_changed:
.. rst-class:: classref-signal
**input_float_changed**\ (\ name\: :ref:`String<class_String>`, value\: :ref:`float<class_float>`\ ) :ref:`🔗<class_XRPositionalTracker_signal_input_float_changed>`
当此追踪器上的一个触发器或类似输入更改值时发出。
.. rst-class:: classref-item-separator
----
.. _class_XRPositionalTracker_signal_input_vector2_changed:
.. rst-class:: classref-signal
**input_vector2_changed**\ (\ name\: :ref:`String<class_String>`, vector\: :ref:`Vector2<class_Vector2>`\ ) :ref:`🔗<class_XRPositionalTracker_signal_input_vector2_changed>`
当该追踪器上的一个拇指杆或拇指板移动时发出。
.. rst-class:: classref-item-separator
----
.. _class_XRPositionalTracker_signal_pose_changed:
.. rst-class:: classref-signal
**pose_changed**\ (\ pose\: :ref:`XRPose<class_XRPose>`\ ) :ref:`🔗<class_XRPositionalTracker_signal_pose_changed>`
当被此追踪器追踪的一个姿势状态发生变化时发出。
.. rst-class:: classref-item-separator
----
.. _class_XRPositionalTracker_signal_pose_lost_tracking:
.. rst-class:: classref-signal
**pose_lost_tracking**\ (\ pose\: :ref:`XRPose<class_XRPose>`\ ) :ref:`🔗<class_XRPositionalTracker_signal_pose_lost_tracking>`
当被该追踪器追踪的一个姿势停止获取更新的跟踪数据时发出。
.. rst-class:: classref-item-separator
----
.. _class_XRPositionalTracker_signal_profile_changed:
.. rst-class:: classref-signal
**profile_changed**\ (\ role\: :ref:`String<class_String>`\ ) :ref:`🔗<class_XRPositionalTracker_signal_profile_changed>`
当我们的追踪器的配置发生变化时发出。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
枚举
----
.. _enum_XRPositionalTracker_TrackerHand:
.. rst-class:: classref-enumeration
enum **TrackerHand**: :ref:`🔗<enum_XRPositionalTracker_TrackerHand>`
.. _class_XRPositionalTracker_constant_TRACKER_HAND_UNKNOWN:
.. rst-class:: classref-enumeration-constant
:ref:`TrackerHand<enum_XRPositionalTracker_TrackerHand>` **TRACKER_HAND_UNKNOWN** = ``0``
手持该追踪器的手是未知的或不适用的。
.. _class_XRPositionalTracker_constant_TRACKER_HAND_LEFT:
.. rst-class:: classref-enumeration-constant
:ref:`TrackerHand<enum_XRPositionalTracker_TrackerHand>` **TRACKER_HAND_LEFT** = ``1``
此跟踪器是左手控制器。
.. _class_XRPositionalTracker_constant_TRACKER_HAND_RIGHT:
.. rst-class:: classref-enumeration-constant
:ref:`TrackerHand<enum_XRPositionalTracker_TrackerHand>` **TRACKER_HAND_RIGHT** = ``2``
此跟踪器是右手控制器。
.. _class_XRPositionalTracker_constant_TRACKER_HAND_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`TrackerHand<enum_XRPositionalTracker_TrackerHand>` **TRACKER_HAND_MAX** = ``3``
代表 :ref:`TrackerHand<enum_XRPositionalTracker_TrackerHand>` 枚举的大小。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
属性说明
--------
.. _class_XRPositionalTracker_property_hand:
.. rst-class:: classref-property
:ref:`TrackerHand<enum_XRPositionalTracker_TrackerHand>` **hand** = ``0`` :ref:`🔗<class_XRPositionalTracker_property_hand>`
.. rst-class:: classref-property-setget
- |void| **set_tracker_hand**\ (\ value\: :ref:`TrackerHand<enum_XRPositionalTracker_TrackerHand>`\ )
- :ref:`TrackerHand<enum_XRPositionalTracker_TrackerHand>` **get_tracker_hand**\ (\ )
定义此追踪器与哪只手相关。
.. rst-class:: classref-item-separator
----
.. _class_XRPositionalTracker_property_profile:
.. rst-class:: classref-property
:ref:`String<class_String>` **profile** = ``""`` :ref:`🔗<class_XRPositionalTracker_property_profile>`
.. rst-class:: classref-property-setget
- |void| **set_tracker_profile**\ (\ value\: :ref:`String<class_String>`\ )
- :ref:`String<class_String>` **get_tracker_profile**\ (\ )
与此追踪器关联的配置,取决于接口,但将指示被追踪的控制器类型。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
方法说明
--------
.. _class_XRPositionalTracker_method_get_input:
.. rst-class:: classref-method
:ref:`Variant<class_Variant>` **get_input**\ (\ name\: :ref:`StringName<class_StringName>`\ ) |const| :ref:`🔗<class_XRPositionalTracker_method_get_input>`
**已弃用:** Use through :ref:`XRControllerTracker<class_XRControllerTracker>`.
返回此追踪器的输入。它可以返回一个布尔值、浮点数或 :ref:`Vector2<class_Vector2>` 值,具体取决于输入是一个按钮、触发器还是拇指杆/拇指板。
.. rst-class:: classref-item-separator
----
.. _class_XRPositionalTracker_method_get_pose:
.. rst-class:: classref-method
:ref:`XRPose<class_XRPose>` **get_pose**\ (\ name\: :ref:`StringName<class_StringName>`\ ) |const| :ref:`🔗<class_XRPositionalTracker_method_get_pose>`
返回绑定 ``name`` 姿势的当前 :ref:`XRPose<class_XRPose>` 状态对象。
.. rst-class:: classref-item-separator
----
.. _class_XRPositionalTracker_method_has_pose:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **has_pose**\ (\ name\: :ref:`StringName<class_StringName>`\ ) |const| :ref:`🔗<class_XRPositionalTracker_method_has_pose>`
如果追踪器可用,并且当前正在追踪绑定的 ``name`` 姿势,则返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_XRPositionalTracker_method_invalidate_pose:
.. rst-class:: classref-method
|void| **invalidate_pose**\ (\ name\: :ref:`StringName<class_StringName>`\ ) :ref:`🔗<class_XRPositionalTracker_method_invalidate_pose>`
将此姿势标记为无效,我们不会清除最后报告的状态,但如果我们失去追踪,它允许用户决定是否需要隐藏追踪器,或仅保留在其最后一个已知位置。
.. rst-class:: classref-item-separator
----
.. _class_XRPositionalTracker_method_set_input:
.. rst-class:: classref-method
|void| **set_input**\ (\ name\: :ref:`StringName<class_StringName>`, value\: :ref:`Variant<class_Variant>`\ ) :ref:`🔗<class_XRPositionalTracker_method_set_input>`
**已弃用:** Use through :ref:`XRControllerTracker<class_XRControllerTracker>`.
更改给定输入的值。此方法由一个 :ref:`XRInterface<class_XRInterface>` 实现调用,不应直接使用。
.. rst-class:: classref-item-separator
----
.. _class_XRPositionalTracker_method_set_pose:
.. rst-class:: classref-method
|void| **set_pose**\ (\ name\: :ref:`StringName<class_StringName>`, transform\: :ref:`Transform3D<class_Transform3D>`, linear_velocity\: :ref:`Vector3<class_Vector3>`, angular_velocity\: :ref:`Vector3<class_Vector3>`, tracking_confidence\: :ref:`TrackingConfidence<enum_XRPose_TrackingConfidence>`\ ) :ref:`🔗<class_XRPositionalTracker_method_set_pose>`
设置给定姿势的变换、线速度、角速度和追踪置信度。此方法由一个 :ref:`XRInterface<class_XRInterface>` 实现调用,不应直接使用。
.. |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 (无返回值。)`