XRInputSourceEvent
WebXR Device API 的 XRInputSourceEvent 介面描述了在 WebXR 使用者輸入裝置(例如手柄、注視跟蹤系統或運動跟蹤系統)上發生的事件。更具體地說,它們代表了 XRInputSource 狀態的變化。
要了解更多關於在 WebXR 專案中處理輸入的資訊,請參閱文章 輸入和輸入源。
建構函式
XRInputSourceEvent()-
建立並返回一個新的
XRInputSourceEvent物件,其屬性與提供的eventInitDict字典中的屬性匹配。
例項屬性
frame只讀-
一個
XRFrame物件,提供有關事件發生幀的必要資訊。此幀可能是在過去渲染的,而不是當前幀。因為這是一個事件幀,而不是動畫幀,所以您不能在其上呼叫XRFrame方法getViewerPose();而是使用getPose()。 inputSource只讀-
一個
XRInputSource物件,指示是哪個輸入源生成了此輸入事件。
例項方法
XRInputSourceEvent 介面不定義任何方法;但是,有幾個方法是從父介面 Event 繼承而來的。
事件型別
select-
當傳送輸入源完全完成一項 主要操作時,傳送到
XRSession。 selectend-
當正在進行的主要操作結束,或者當具有正在進行的主要操作的輸入源與系統斷開連線時,傳送到
XRSession。 selectstart-
當輸入源開始其 主要操作時,傳送到
XRSession,表示使用者已開始一項命令式輸入,例如按下扳機或按鈕、發出語音命令、輕觸觸控板等。 squeeze-
當傳送輸入源完全完成一項 主要擠壓操作時,傳送到
XRSession。 squeezeend-
當正在進行的 主要擠壓操作結束,或者當具有正在進行的擠壓操作的輸入源斷開連線時,傳送到
XRSession。 squeezestart-
當輸入源開始其 主要擠壓操作時,傳送到
XRSession,表示使用者已開始抓取、擠壓或握住控制器。
示例
以下程式碼設定了主要操作事件的事件處理器,以便在使用者單擊(射擊/點選/等)場景中的物件時確定。
xrSession.addEventListener("select", (event) => {
let targetRayPose = event.frame.getPose(
event.inputSource.targetRaySpace,
myRefSpace,
);
if (targetRayPose) {
let hit = myHitTest(targetRayPose.transform);
if (hit) {
/* handle the hit */
}
}
});
規範
| 規範 |
|---|
| WebXR Device API # xrinputsourceevent-interface |
瀏覽器相容性
載入中…