ARVRController

Inherits: Spatial < Node < Object

表示空间跟踪控制器的空间节点。

描述

这是链接到控制器跟踪的辅助空间节点。它还为控制器上的按钮等状态提供了几个便捷的通道。

控制器通过它们的 ID 链接。你可以在控制器可用之前创建控制器节点。如果你的游戏总是使用两个控制器,即每只手一个,你可以预先定义 ID 为 1 和 2 的控制器;一旦确定了控制器,它们就会被激活。如果你希望使用额外的控制器,应该对信号加以处理,并将 ARVRController 节点添加到您场景中。

控制器节点的位置由 ARVRServer 自动更新。这使得该节点非常适合添加子节点以实现可视化控制器。

教程

属性

int

controller_id

1

float

rumble

0.0

方法

String

get_controller_name ( ) const

TrackerHand

get_hand ( ) const

bool

get_is_active ( ) const

float

get_joystick_axis ( int axis ) const

int

get_joystick_id ( ) const

Mesh

get_mesh ( ) const

int

is_button_pressed ( int button ) const

信号

  • button_pressed ( int button )

当该控制器上的一个按钮被按下时触发。


  • button_release ( int button )

当该控制器上的一个按钮被释放时触发。


  • mesh_updated ( Mesh mesh )

当与控制器相关的Mesh发生变化或变得可用时触发。一般来说,这将是一个变得可用后的静态网格。

属性说明

  • int controller_id

Default

1

Setter

set_controller_id(value)

Getter

get_controller_id()

控制器的 ID。

控制器 ID 为 0 是未绑定的,并且始终会导致节点处于非活动状态。控制器 ID 1 保留给第一个将自己标识为左侧控制器的控制器,ID 2 保留给第一个将其标识为右侧控制器的控制器。

对于 ARVRServer 检测到的任何其他控制器,继而使用控制器 ID 3。

当控制器关闭时,它的插槽被释放。这可确保即使在关闭 ID 较低的控制器时,其他控制器也将保持相同的 ID。


Default

0.0

Setter

set_rumble(value)

Getter

get_rumble()

控制器振动的程度。范围从0.01.0,精度.01。如果更改,会相应地更新ARVRPositionalTracker.rumble

如果你想让控制器在限定时间内振动,这是一个有用的属性,可以将其动画化。

方法说明

  • String get_controller_name ( ) const

如果激活,如果由使用的AR/VR SDK提供,则返回相关控制器的名称。


返回持有此控制器的手,如果知道的话。参阅TrackerHand


  • bool get_is_active ( ) const

如果绑定的控制器处于活动状态,返回true。ARVR系统尝试跟踪活动的控制器。


  • float get_joystick_axis ( int axis ) const

为嵌入到控制器中的触发器、触摸板等返回给定轴的值。


  • int get_joystick_id ( ) const

返回与此绑定的摇杆对象的ID。由ARVRServer跟踪的每个控制器,如果有按钮和轴,也将被注册为Godot中的摇杆。这意味着所有正常的摇杆跟踪和输入映射将对AR/VR控制器上的按钮和轴起作用。这个ID纯粹是作为信息提供的,这样你就可以把控制器和它的摇杆条目关联起来。


  • Mesh get_mesh ( ) const

如果由 ARVRInterface提供,则返回与控制器相关的网格。这可用于可视化控制器。


  • int is_button_pressed ( int button ) const

如果索引button处的按钮被按下,返回true。参阅JoystickList,特别是JOY_VR_*常数。