跟踪控件

aframe 0.x >= 0.3

跟踪控件组件是 A-Frame 的基本控制器组件,为所有 A-Frame 的控制器组件提供基础。跟踪控件组件:

  • 给定 ID 或前缀,从 Gamepad API 中获取 Gamepad 对象。

  • 应用 Gamepad API 中的姿势(位置和方向)来读取控制器动作。

  • 查找 Gamepad 对象的按钮值中的更改,以便在按下或触摸按钮时以及更改轴和触摸板时提供事件(即 axischangedbuttonchangedbuttondownbuttonuptouchstarttouchend)。

所有 A-Frame 的控制器组件都构建在 tracked-controls 组件之上:

  • 使用适当的游戏手柄 ID 在实体上设置跟踪控件组件(例如,Oculus Touch(右))。例如,vive-controls 组件可以

    el.setAttribute('tracked-controls', {idPrefix: 'OpenVR'})
    

    然后 tracked-controls 将连接到相应的 Gamepad 对象,为实体提供姿势和事件。

  • 摘要跟踪控件提供的事件。跟踪控制事件是低级别的; 因为我们必须事先知道按钮映射,否则我们很难根据这些事件来判断哪些按钮被按下了。控制器组件可以事先知道各自控制器的映射,并提供更多的语义事件,如 triggerdownxbuttonup

  • 提供模型。仅 tracked-controls 不提供任何外观。控制器组件可以提供显示按下或触摸按钮时的视觉反馈,手势和动画的模型。以下控制器组件仅在检测到控制器被发现并在 Gamepad API 中被视为已连接时才被激活。

tracked-controls 组件与跟踪控制器连接。tracked-controls 使用 Gamepad API 处理跟踪控制器,并由手控组件以及 vive-control 和 oculus-touch-controls 组件抽象。该组件选择适当的控制器,对实体应用姿势,观察按钮状态并发出适当的事件。

请注意,由于最近浏览器特定的更改,Vive 控制器可能由 Gamepad API 返回,其 id 值为 OpenVR GamepadOpenVR Controller ,因此建议使用 idPrefix 用于 Vive / OpenVR 控制器。

<a-entity tracked-controls="controller: 0; idPrefix: OpenVR"></a-entity>