meta quest
This commit is contained in:
@@ -149,7 +149,7 @@ export default {
|
||||
* @param target Target scene definition from Game Module
|
||||
*/
|
||||
async loadEnvironment(scene, target){
|
||||
await gameEngine.loadPanorama(`/asset/default/43.webp`);
|
||||
//await gameEngine.loadPanorama(`/asset/default/43.webp`);
|
||||
await this.expandScenarioData(scene);
|
||||
target.objects = target.objects || {};
|
||||
let l = target.objects;
|
||||
@@ -160,7 +160,7 @@ export default {
|
||||
this.setObjectAttributes(l, this.scene.data, env, 100);
|
||||
gameEngine.activeObjects.add(env.scene);
|
||||
}
|
||||
for (let i of this.scene.data.items) {
|
||||
for (let i of this.scene.data.items || []) {
|
||||
let gltf = await gameEngine.load(`/asset/default/${i.data.$go.asset.name}`);
|
||||
this.setObjectAttributes(l, i.data, gltf, 10);
|
||||
gameEngine.activeObjects.add(gltf.scene);
|
||||
@@ -177,7 +177,7 @@ export default {
|
||||
},
|
||||
async expandScenarioData(scene){
|
||||
scene.data.$environment = (await this.$api.gameObject.load(scene.data.environment)).data
|
||||
for (let i of scene.data.items) {
|
||||
for (let i of scene.data.items || []) {
|
||||
i.data.$go = (await this.$api.gameObject.load(i.data.go)).data;
|
||||
}
|
||||
},
|
||||
|
||||
@@ -154,7 +154,7 @@ export default {
|
||||
this.setObjectAttributes(l, this.scene.data, env, 100);
|
||||
gameEngine.activeObjects.add(env.scene);
|
||||
}
|
||||
for (let i of this.scene.data.items) {
|
||||
for (let i of this.scene.data.items || []) {
|
||||
let gltf = await gameEngine.load(`/asset/default/${i.data.$go.asset.name}`);
|
||||
this.setObjectAttributes(l, i.data, gltf, 10);
|
||||
gameEngine.activeObjects.add(gltf.scene);
|
||||
@@ -170,7 +170,7 @@ export default {
|
||||
},
|
||||
async expandScenarioData(scene){
|
||||
scene.data.$environment = (await this.$api.gameObject.load(scene.data.environment)).data
|
||||
for (let i of scene.data.items) {
|
||||
for (let i of scene.data.items || []) {
|
||||
i.data.$go = (await this.$api.gameObject.load(i.data.go)).data;
|
||||
}
|
||||
},
|
||||
|
||||
+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