跟踪控件
aframe 0.x >= 0.3
跟踪控件组件是 A-Frame 的基本控制器组件,为所有 A-Frame 的控制器组件提供基础。跟踪控件组件:
-
给定 ID 或前缀,从 Gamepad API 中获取 Gamepad 对象。
-
应用 Gamepad API 中的姿势(位置和方向)来读取控制器动作。
-
查找 Gamepad 对象的按钮值中的更改,以便在按下或触摸按钮时以及更改轴和触摸板时提供事件(即
axischanged
,buttonchanged
,buttondown
,buttonup
,touchstart
,touchend
)。
所有 A-Frame 的控制器组件都构建在 tracked-controls
组件之上:
-
使用适当的游戏手柄 ID 在实体上设置跟踪控件组件(例如,Oculus Touch(右))。例如,vive-controls 组件可以
el.setAttribute('tracked-controls', {idPrefix: 'OpenVR'})
然后
tracked-controls
将连接到相应的 Gamepad 对象,为实体提供姿势和事件。 -
摘要跟踪控件提供的事件。跟踪控制事件是低级别的; 因为我们必须事先知道按钮映射,否则我们很难根据这些事件来判断哪些按钮被按下了。控制器组件可以事先知道各自控制器的映射,并提供更多的语义事件,如
triggerdown
或xbuttonup
。 -
提供模型。仅
tracked-controls
不提供任何外观。控制器组件可以提供显示按下或触摸按钮时的视觉反馈,手势和动画的模型。以下控制器组件仅在检测到控制器被发现并在 Gamepad API 中被视为已连接时才被激活。
tracked-controls
组件与跟踪控制器连接。tracked-controls 使用 Gamepad API 处理跟踪控制器,并由手控组件以及 vive-control 和 oculus-touch-controls 组件抽象。该组件选择适当的控制器,对实体应用姿势,观察按钮状态并发出适当的事件。
请注意,由于最近浏览器特定的更改,Vive 控制器可能由 Gamepad API 返回,其 id 值为 OpenVR Gamepad
或 OpenVR Controller
,因此建议使用 idPrefix
用于 Vive / OpenVR 控制器。
<a-entity tracked-controls="controller: 0; idPrefix: OpenVR"></a-entity>