diff --git a/src/runtime-three/third-person-navigation-controller.ts b/src/runtime-three/third-person-navigation-controller.ts index f5315522..e86e90a2 100644 --- a/src/runtime-three/third-person-navigation-controller.ts +++ b/src/runtime-three/third-person-navigation-controller.ts @@ -300,7 +300,11 @@ export class ThirdPersonNavigationController implements NavigationController { const cameraDrivenExternally = this.context.isCameraDrivenExternally() === true; if (!cameraDrivenExternally && (lookInput.horizontal !== 0 || lookInput.vertical !== 0)) { - this.cameraYawRadians -= lookInput.horizontal * GAMEPAD_LOOK_SPEED * dt; + const yawDeltaRadians = -lookInput.horizontal * GAMEPAD_LOOK_SPEED * dt; + this.cameraYawRadians += yawDeltaRadians; + if (yawDeltaRadians !== 0) { + this.context.reportThirdPersonCameraLookIntent?.(yawDeltaRadians); + } this.pitchRadians = clampPitch( this.pitchRadians - lookInput.vertical * GAMEPAD_LOOK_SPEED * dt ); @@ -570,7 +574,11 @@ export class ThirdPersonNavigationController implements NavigationController { this.lastPointerClientX = event.clientX; this.lastPointerClientY = event.clientY; - this.cameraYawRadians -= deltaX * LOOK_SENSITIVITY; + const yawDeltaRadians = -deltaX * LOOK_SENSITIVITY; + this.cameraYawRadians += yawDeltaRadians; + if (yawDeltaRadians !== 0) { + this.context?.reportThirdPersonCameraLookIntent?.(yawDeltaRadians); + } this.pitchRadians = clampPitch( this.pitchRadians + deltaY * LOOK_SENSITIVITY );