浏览代码

feat: sessiongranted support for VRButton to enable navigation between VR pages (#23110)

hybridherbst 3 年之前
父节点
当前提交
ac30cacd13
共有 1 个文件被更改,包括 24 次插入0 次删除
  1. 24 0
      examples/jsm/webxr/VRButton.js

+ 24 - 0
examples/jsm/webxr/VRButton.js

@@ -132,6 +132,12 @@ class VRButton {
 
 
 				supported ? showEnterVR() : showWebXRNotFound();
 				supported ? showEnterVR() : showWebXRNotFound();
 
 
+				if ( supported && VRButton.xrSessionIsGranted ) {
+
+					button.click();
+
+				}
+
 			} );
 			} );
 
 
 			return button;
 			return button;
@@ -164,6 +170,24 @@ class VRButton {
 
 
 	}
 	}
 
 
+	static xrSessionIsGranted = false;
+
+	static registerSessionGrantedListener() {
+
+		if ( 'xr' in navigator ) {
+
+			navigator.xr.addEventListener( 'sessiongranted', () => {
+
+				VRButton.xrSessionIsGranted = true;
+
+			} );
+
+		}
+
+	}
+
 }
 }
 
 
+VRButton.registerSessionGrantedListener();
+
 export { VRButton };
 export { VRButton };