跟蹤控制元件
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>