Sfoglia il codice sorgente

Adding default animation behavior on Vive trigger & menu

davrous 8 anni fa
parent
commit
44d0555d96
1 ha cambiato i file con 14 aggiunte e 4 eliminazioni
  1. 14 4
      src/Tools/babylon.extendedGamepad.ts

+ 14 - 4
src/Tools/babylon.extendedGamepad.ts

@@ -345,7 +345,7 @@ module BABYLON {
     }
     }
 
 
     export class ViveController extends WebVRController {
     export class ViveController extends WebVRController {
-
+        private _defaultModel: BABYLON.AbstractMesh;
 
 
         constructor(vrGamepad) {
         constructor(vrGamepad) {
             super(vrGamepad);
             super(vrGamepad);
@@ -365,9 +365,8 @@ module BABYLON {
                 - trigger
                 - trigger
                 - LED
                 - LED
                 */
                 */
-
-                var mesh = newMeshes[1];
-                this.attachToMesh(mesh);
+                this._defaultModel = newMeshes[1];
+                this.attachToMesh(this._defaultModel);
             });
             });
         }
         }
 
 
@@ -398,12 +397,23 @@ module BABYLON {
                     this.onPadStateChangedObservable.notifyObservers(notifyObject);
                     this.onPadStateChangedObservable.notifyObservers(notifyObject);
                     return;
                     return;
                 case 1: // index trigger
                 case 1: // index trigger
+                    if (this._defaultModel) {
+                        (<AbstractMesh>(this._defaultModel.getChildren()[6])).rotation.x = -notifyObject.value * 0.15;
+                    }
                     this.onTriggerStateChangedObservable.notifyObservers(notifyObject);
                     this.onTriggerStateChangedObservable.notifyObservers(notifyObject);
                     return;
                     return;
                 case 2:  // left AND right button
                 case 2:  // left AND right button
                     this.onMainButtonStateChangedObservable.notifyObservers(notifyObject);
                     this.onMainButtonStateChangedObservable.notifyObservers(notifyObject);
                     return;
                     return;
                 case 3:
                 case 3:
+                    if (this._defaultModel) {
+                        if (notifyObject.value === 1) {
+                            (<AbstractMesh>(this._defaultModel.getChildren()[2])).position.y = -0.001;
+                        }
+                        else {
+                            (<AbstractMesh>(this._defaultModel.getChildren()[2])).position.y = 0;
+                        }
+                    }
                     this.onSecondaryButtonStateChangedObservable.notifyObservers(notifyObject);
                     this.onSecondaryButtonStateChangedObservable.notifyObservers(notifyObject);
                     return;
                     return;
             }
             }