From 2b9f593e030363500476cd8e6d11088107d9612f Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Tue, 21 Apr 2026 11:19:48 +0900 Subject: [PATCH] Update engine.ts --- packages/frontend/src/world/room/engine.ts | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/packages/frontend/src/world/room/engine.ts b/packages/frontend/src/world/room/engine.ts index 01ba14087b..0656550b7b 100644 --- a/packages/frontend/src/world/room/engine.ts +++ b/packages/frontend/src/world/room/engine.ts @@ -275,8 +275,6 @@ export class RoomEngine extends EventEmitter { this.scene.collisionsEnabled = true; this.camera = new BABYLON.UniversalCamera('camera', new BABYLON.Vector3(0, cm(130), cm(0)), this.scene); - this.camera.inputs.removeByType('FreeCameraKeyboardMoveInput'); - this.camera.inputs.add(new HorizontalCameraKeyboardMoveInput(this.camera)); this.camera.attachControl(this.canvas); this.camera.minZ = cm(1); this.camera.maxZ = cm(2000); @@ -285,6 +283,26 @@ export class RoomEngine extends EventEmitter { this.camera.checkCollisions = true; this.camera.applyGravity = true; this.camera.needMoveForGravity = true; + this.camera.keysUp.push(87); // W + this.camera.keysDown.push(83); // S + this.camera.keysLeft.push(65); // A + this.camera.keysRight.push(68); // D + const normalSpeed = 2; + this.camera.speed = normalSpeed; + this.scene.onKeyboardObservable.add((kbInfo) => { + switch (kbInfo.type) { + case BABYLON.KeyboardEventTypes.KEYDOWN: + if (kbInfo.event.key === 'Shift') { + this.camera.speed = normalSpeed * 3; + } + break; + case BABYLON.KeyboardEventTypes.KEYUP: + if (kbInfo.event.key === 'Shift') { + this.camera.speed = normalSpeed; + } + break; + } + }); //this.scene.activeCamera = this.camera;