Kaynağa Gözat

Add MS controllers meshes

David Catuhe 8 yıl önce
ebeveyn
işleme
bc50969930

BIN
assets/meshes/controllers/microsoft/left.glb


BIN
assets/meshes/controllers/microsoft/right.glb


Dosya farkı çok büyük olduğundan ihmal edildi
+ 3991 - 3989
dist/preview release/babylon.d.ts


Dosya farkı çok büyük olduğundan ihmal edildi
+ 3991 - 3989
dist/preview release/babylon.module.d.ts


+ 4 - 0
src/Cameras/Inputs/babylon.arcRotateCameraPointersInput.ts

@@ -45,6 +45,10 @@ module BABYLON {
             this._pointerInput = (p, s) => {
             this._pointerInput = (p, s) => {
                 var evt = <PointerEvent>p.event;
                 var evt = <PointerEvent>p.event;
 
 
+                if (engine.isInVRExclusivePointerMode) {
+                    return;
+                }
+
                 if (p.type !== PointerEventTypes.POINTERMOVE && this.buttons.indexOf(evt.button) === -1) {
                 if (p.type !== PointerEventTypes.POINTERMOVE && this.buttons.indexOf(evt.button) === -1) {
                     return;
                     return;
                 }
                 }

+ 8 - 0
src/Cameras/Inputs/babylon.freeCameraMouseInput.ts

@@ -24,6 +24,10 @@ module BABYLON {
                 this._pointerInput = (p, s) => {
                 this._pointerInput = (p, s) => {
                     var evt = <PointerEvent>p.event;
                     var evt = <PointerEvent>p.event;
 
 
+                    if (engine.isInVRExclusivePointerMode) {
+                        return;
+                    }
+
                     if (!this.touchEnabled && evt.pointerType === "touch") {
                     if (!this.touchEnabled && evt.pointerType === "touch") {
                         return;
                         return;
                     }
                     }
@@ -95,6 +99,10 @@ module BABYLON {
                     return;
                     return;
                 }
                 }
 
 
+                if (engine.isInVRExclusivePointerMode) {
+                    return;
+                }
+
                 var offsetX = evt.movementX || evt.mozMovementX || evt.webkitMovementX || evt.msMovementX || 0;
                 var offsetX = evt.movementX || evt.mozMovementX || evt.webkitMovementX || evt.msMovementX || 0;
                 var offsetY = evt.movementY || evt.mozMovementY || evt.webkitMovementY || evt.msMovementY || 0;
                 var offsetY = evt.movementY || evt.mozMovementY || evt.webkitMovementY || evt.msMovementY || 0;
 
 

+ 9 - 0
src/babylon.engine.ts

@@ -564,6 +564,11 @@
         private _vrDisplayEnabled;
         private _vrDisplayEnabled;
         private _oldSize: BABYLON.Size;
         private _oldSize: BABYLON.Size;
         private _oldHardwareScaleFactor: number;
         private _oldHardwareScaleFactor: number;
+        private _vrExclusivePointerMode = false;
+
+        public get isInVRExclusivePointerMode(): boolean {
+            return this._vrExclusivePointerMode;
+        }
 
 
         // Uniform buffers list
         // Uniform buffers list
         public disableUniformBuffers = false;
         public disableUniformBuffers = false;
@@ -941,10 +946,14 @@
                 document.addEventListener("webkitpointerlockchange", this._onPointerLockChange, false);
                 document.addEventListener("webkitpointerlockchange", this._onPointerLockChange, false);
 
 
                 this._onVRDisplayPointerRestricted = () => {
                 this._onVRDisplayPointerRestricted = () => {
+                    this._vrExclusivePointerMode = true;
+                    console.log("enter");
                     canvas.requestPointerLock();
                     canvas.requestPointerLock();
                 }
                 }
 
 
                 this._onVRDisplayPointerUnrestricted = () => {
                 this._onVRDisplayPointerUnrestricted = () => {
+                    this._vrExclusivePointerMode = false;
+                    console.log("exit");
                     document.exitPointerLock();
                     document.exitPointerLock();
                 }
                 }