跟蹤控制元件

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>