XRInputSource
XRInputSource 介面是 WebXR 裝置 API 的一部分,它描述了使用者 WebXR 相容的虛擬或增強現實系統中一個獨立的控制輸入源。該裝置特定於所使用的平臺,但它提供了一個指向的方向,並且如果使用者透過該裝置執行操作,它還可以選擇性地生成事件。
例項屬性
gamepad只讀-
如果 XR 輸入源是遊戲手柄或類似裝置,則返回一個描述其按鈕和軸狀態的
Gamepad物件。如果裝置不是類似遊戲手柄的裝置,則此屬性的值為null。 gripSpace只讀-
一個
XRSpace物件,其原點追蹤用於渲染物件應該出現在使用者所指示的(由handedness指定的)手中所持有的姿勢。此空間的方位指示了手握持物件的角度。有關如何使用此空間的更多詳細資訊,請閱讀關於gripSpace的主要文章。 hand只讀-
一個
XRHand物件,提供對底層手部追蹤裝置的訪問。 handedness只讀-
一個字串,指示此
XRInputSource代表的裝置正在用於哪隻手(如果有)。該值將是left、right或none。 profiles只讀-
一個字串陣列,每個字串指定一個輸入配置檔案的名稱,該配置檔案描述了此輸入源的首選視覺表示和行為。
targetRayMode只讀-
一個字串,指示用於生成目標射線的技術:
gaze(注視)、tracked-pointer(追蹤指標)或screen(螢幕)。 targetRaySpace只讀-
一個
XRSpace物件,定義了目標射線的原點以及其延伸的方向。此空間是使用targetRayMode定義的方法建立的。
例項方法
XRInputSource 介面不定義任何方法。
用法說明
操作和目標射線
如果裝置提供了其指向的方向指示,則透過 **目標射線** 來實現。這是一條從裝置位置向外延伸,指向裝置所指向方向的射線。
從手持控制器發出的目標射線。

如果裝置包含觸發器或其他可擠壓的輸入,例如能夠識別使用者握拳的手部追蹤裝置,則該操作稱為 **主要擠壓操作**。主要擠壓操作應對應於現實中的抓握行為,例如抓住一個物體或按下工具或武器上的扳機。當擠壓操作開始時(例如,使用者按下扳機或收緊握持),一個 squeezestart 事件會被髮送到 XRSession。一旦操作完成,使用者釋放了扳機或握持,就會發送一個 squeeze 事件。最後,會發送一個 squeezeend 事件,如果操作被中止而不是完成,也會發送此事件。
如果裝置有一個按鈕或其他可按下的輸入控制元件,它就是一個 **主要輸入源**,該按鈕就是一個 **主要操作**。當用戶按下按鈕、點選觸控板或搖桿頂部按鈕,或者使用呼叫按鈕類似操作的手勢或語音命令時,可能會發生主要操作。當主要操作開始時,一個 selectstart 事件會被髮送到 XRSession。當操作完成時(例如,使用者釋放按鈕時),會發送一個 select 事件。最後,一旦完成——或者使用者中止了該操作——一個 selectend 事件會被髮送到會話物件。
操作可能由於使用者以某種特定於裝置的方式進行操作而中止,或者在操作完成之前輸入裝置斷開連線而中止。
本地座標系
每個輸入源都有自己的本地座標系,由 gripSpace 屬性描述,它是一個 XRSpace 物件,用於將輸入的座標系對映到世界座標系。然後可以使用 grip 空間的座標系來渲染物件,使其看起來像是被使用者的手所握持。
有關輸入源座標系統的更多詳細資訊,請參閱詳細介紹 gripSpace 屬性的文章。
規範
| 規範 |
|---|
| WebXR Device API # xrinputsource-interface |
瀏覽器相容性
載入中…