refactor pointerControls, move away from hero to gameEngine
This commit is contained in:
@@ -8,6 +8,7 @@ import { StereoEffect } from 'three/addons/effects/StereoEffect.js';
|
||||
// import { MapControls } from 'three/addons/controls/MapControls.js';
|
||||
// import { FirstPersonControls } from 'three/addons/controls/FirstPersonControls.js';
|
||||
import { TransformControls } from 'three/addons/controls/TransformControls.js';
|
||||
import { PointerControls } from './PointerControls';
|
||||
import { ARButton } from 'three/addons/webxr/ARButton.js';
|
||||
import { XRButton } from 'three/addons/webxr/XRButton.js';
|
||||
import { XRControllerModelFactory } from 'three/addons/webxr/XRControllerModelFactory.js';
|
||||
@@ -140,6 +141,8 @@ class GameEngine extends EventManager{
|
||||
this.transformControls.addEventListener('dragging-changed', function (event) {
|
||||
controls.enabled = !event.value;
|
||||
});
|
||||
|
||||
this.pointerControls = new PointerControls(this.camera, renderer.domElement);
|
||||
// controls.enableDamping = true;
|
||||
// controls.screenSpacePanning = true;
|
||||
|
||||
@@ -150,9 +153,9 @@ class GameEngine extends EventManager{
|
||||
function animate(time) {
|
||||
let delta = clock.getDelta();
|
||||
gameEngine.physics?.step();
|
||||
gameEngine.handleXrAction(gameEngine, delta);
|
||||
gameEngine.hero?.update(delta);
|
||||
gameEngine.mixers.forEach(m => m.update(delta));
|
||||
gameEngine.handleXrAction(gameEngine, delta)
|
||||
gameEngine.dispatchEvent({type: 'beforeRender'})
|
||||
this.motionQueue.update(delta);
|
||||
|
||||
@@ -190,7 +193,7 @@ class GameEngine extends EventManager{
|
||||
renderer.domElement.addEventListener('wheel', (event) => {
|
||||
event.preventDefault();
|
||||
if (gameEngine.hero){
|
||||
if (!gameEngine.hero.pointerControls.controls.isLocked){
|
||||
if (!gameEngine.pointerControls.controls.isLocked){
|
||||
gameEngine.hero.cameraZ += event.deltaY / 100;
|
||||
}else{
|
||||
gameEngine.camera.fov += event.deltaY / 100;
|
||||
@@ -307,7 +310,9 @@ class GameEngine extends EventManager{
|
||||
await this.physics.init();
|
||||
}
|
||||
|
||||
handleXrActionGameMode(gameEngine, delta) {}
|
||||
handleXrActionGameMode(gameEngine, delta) {
|
||||
|
||||
}
|
||||
|
||||
handleXrActionDesignMode(gameEngine, delta) {
|
||||
if (gameEngine.xrController2?.gamepad) {
|
||||
|
||||
Reference in New Issue
Block a user