meta quest
This commit is contained in:
+41
-16
@@ -109,6 +109,25 @@ class GameEngine {
|
||||
function animate(time) {
|
||||
let delta = clock.getDelta();
|
||||
mixer.update(delta);
|
||||
if (gameEngine.xrController1?.gamepad){
|
||||
let gp = gameEngine.xrController1.gamepad;
|
||||
if (gp.axes[3] != 0){
|
||||
gameEngine.scene.position.z += gp.axes[3] * delta;
|
||||
}
|
||||
if (gp.axes[2] != 0){
|
||||
gameEngine.scene.position.x += gp.axes[2] * delta;
|
||||
}
|
||||
}
|
||||
if (gameEngine.xrController2?.gamepad){
|
||||
let gp = gameEngine.xrController2.gamepad;
|
||||
if (gp.axes[3] != 0){
|
||||
let sc = gameEngine.scene.scale.x + gp.axes[3] * delta;
|
||||
gameEngine.scene.scale.set(sc, sc, sc);
|
||||
}
|
||||
if (gp.axes[2] != 0){
|
||||
gameEngine.scene.rotation.y += gp.axes[2] * delta;
|
||||
}
|
||||
}
|
||||
gameEngine.render(scene, gameEngine.camera);
|
||||
gameEngine.gizmo?.render();
|
||||
}
|
||||
@@ -160,21 +179,27 @@ class GameEngine {
|
||||
}
|
||||
|
||||
initXrControllers(){
|
||||
let controller1 = this.renderer.xr.getController( 0 );
|
||||
controller1.addEventListener( 'select', this.onSelect.bind(this) );
|
||||
controller1.addEventListener( 'selectstart', this.onControllerEvent.bind(this) );
|
||||
controller1.addEventListener( 'selectend', this.onControllerEvent.bind(this) );
|
||||
controller1.addEventListener( 'move', this.onControllerEvent.bind(this) );
|
||||
controller1.userData.active = false;
|
||||
this.scene.add( controller1 );
|
||||
let c1 = this.renderer.xr.getController( 0 );
|
||||
c1.addEventListener( 'select', this.onSelect.bind(this) );
|
||||
c1.addEventListener( 'selectstart', this.onControllerEvent.bind(this) );
|
||||
c1.addEventListener( 'selectend', this.onControllerEvent.bind(this) );
|
||||
c1.addEventListener( 'move', this.onControllerEvent.bind(this) );
|
||||
c1.userData.active = false;
|
||||
c1.addEventListener('connected', e=>{
|
||||
c1.gamepad = e.data.gamepad;
|
||||
})
|
||||
this.scene.add( c1 );
|
||||
|
||||
let controller2 = this.renderer.xr.getController( 1 );
|
||||
controller2.addEventListener( 'select', this.onSelect.bind(this) );
|
||||
controller2.addEventListener( 'selectstart', this.onControllerEvent.bind(this) );
|
||||
controller2.addEventListener( 'selectend', this.onControllerEvent.bind(this) );
|
||||
controller2.addEventListener( 'move', this.onControllerEvent.bind(this) );
|
||||
controller2.userData.active = true;
|
||||
this.scene.add( controller2 );
|
||||
let c2 = this.renderer.xr.getController( 1 );
|
||||
c2.addEventListener( 'select', this.onSelect.bind(this) );
|
||||
c2.addEventListener( 'selectstart', this.onControllerEvent.bind(this) );
|
||||
c2.addEventListener( 'selectend', this.onControllerEvent.bind(this) );
|
||||
c2.addEventListener( 'move', this.onControllerEvent.bind(this) );
|
||||
c2.userData.active = true;
|
||||
c2.addEventListener('connected', e=>{
|
||||
c2.gamepad = e.data.gamepad;
|
||||
})
|
||||
this.scene.add( c2 );
|
||||
|
||||
const controllerModelFactory = new XRControllerModelFactory();
|
||||
|
||||
@@ -192,8 +217,8 @@ class GameEngine {
|
||||
line.name = 'line';
|
||||
line.scale.z = 5;
|
||||
|
||||
this.xrController1 = controller1
|
||||
this.xrController2 = controller2
|
||||
this.xrController1 = c1
|
||||
this.xrController2 = c2
|
||||
}
|
||||
|
||||
onControllerEvent(event) {
|
||||
|
||||
Reference in New Issue
Block a user