浏览代码

Take pointerlock in response to vrdisplayrestricted events for mouse clicks in VR

Olga Milovanova 7 年之前
父节点
当前提交
1d6c39eaec
共有 1 个文件被更改,包括 18 次插入0 次删除
  1. 18 0
      examples/webvr_cubes.html

+ 18 - 0
examples/webvr_cubes.html

@@ -142,6 +142,8 @@
 
 				//
 
+				window.addEventListener( 'vrdisplaypointerrestricted', onPointerRestricted, false );
+				window.addEventListener( 'vrdisplaypointerunrestricted', onPointerUnrestricted, false );
 				window.addEventListener( 'resize', onWindowResize, false );
 
 			}
@@ -158,6 +160,22 @@
 
 			}
 
+			function onPointerRestricted() {
+				var pointerLockElement = renderer.domElement;
+				if ( pointerLockElement && typeof(pointerLockElement.requestPointerLock) === 'function' ) {
+					pointerLockElement.requestPointerLock();
+
+				}
+			}
+
+			function onPointerUnrestricted() {
+				var currentPointerLockElement = document.pointerLockElement;
+				var expectedPointerLockElement = renderer.domElement;
+				if ( currentPointerLockElement && currentPointerLockElement === expectedPointerLockElement && typeof(document.exitPointerLock) === 'function' ) {
+					document.exitPointerLock();
+				}
+			}
+
 			function onWindowResize() {
 
 				camera.aspect = window.innerWidth / window.innerHeight;