diff --git a/src/runtime-three/first-person-navigation-controller.ts b/src/runtime-three/first-person-navigation-controller.ts index 4517b9d3..75cc31bd 100644 --- a/src/runtime-three/first-person-navigation-controller.ts +++ b/src/runtime-three/first-person-navigation-controller.ts @@ -486,8 +486,16 @@ export class FirstPersonNavigationController implements NavigationController { return; } + const wasPointerLocked = this.pointerLocked; const pointerLocked = document.pointerLockElement === this.context.domElement; + + if (wasPointerLocked && !pointerLocked) { + this.pressedKeys.clear(); + this.jumpPressed = false; + this.jumpHoldRemainingMs = 0; + } + this.pointerLocked = pointerLocked; this.context.setRuntimeMessage( pointerLocked