值
一個字串,指示輸入控制器是握在使用者的手中,如果是,則指示是哪隻手。該值是以下之一:
用法說明
如果輸入源不是與使用者的手(無論是透過握持、附著還是佩戴)相關聯的裝置,則 handedness 的值為 none。例如,這可能表示一個非手持的輸入源,比如頭顯內建的控制元件,或者附著在頭部或身體上的輸入裝置。
示例
handedness 的一個重要使用場景是確定控制器在哪隻手中,以便您可以在虛擬空間中繪製該手(或該手正在控制的裝置)的表示。
js
function updateInputSources(session, frame, refSpace) {
for (const source of session.inputSources) {
if (source.gripSpace) {
const gripPose = frame.getPose(source.gripSpace, refSpace);
if (gripPose) {
myRenderHandObject(gripPose, inputSource.handedness);
}
}
}
}
此函式將在每個動畫幀(或可能僅定期,取決於所需的平滑度以及任何效能限制)被呼叫,它會掃描輸入源列表,查詢任何具有非 null gripSpace 的輸入源。如果存在 gripSpace,則表示該輸入源是某種手持裝置,因此應儘可能可見地進行渲染。
如果 gripSpace 非 null,該函式將繼續獲取 gripSpace 轉換到當前參考空間中的姿勢。假設該姿勢有效,則會呼叫一個名為 myRenderHandObject() 的函式,並傳入握持器的姿勢以及 handedness 的值。然後,它會以正確的手部姿勢和形狀繪製相應的模型。
規範
| 規範 |
|---|
| WebXR Device API # dom-xrinputsource-handedness |
瀏覽器相容性
載入中…