diff --git a/Assets/Scripts/Components/Controller/ThirdPersonOrbitInput.cs b/Assets/Scripts/Components/Controller/ThirdPersonOrbitInput.cs index 222767e..f089884 100644 --- a/Assets/Scripts/Components/Controller/ThirdPersonOrbitInput.cs +++ b/Assets/Scripts/Components/Controller/ThirdPersonOrbitInput.cs @@ -238,9 +238,11 @@ public class ThirdPersonOrbitInput : MonoBehaviour float scale = CurrentScale(); - // Shift/Ctrl+wheel is reserved for the paint brush resize (MeshPainter), so the orbit camera - // ignores the wheel while either is held - otherwise it would zoom and resize at once. - float scroll = (InputUtil.ShiftHeld() || InputUtil.CtrlHeld()) ? 0f : InputUtil.ReadScroll(); + // Shift/Ctrl+wheel is reserved for the paint brush resize (MeshPainter) - but only in paint + // mode (PanEnabled), where the resize actually claims the wheel. Outside paint mode Shift is + // the sprint key, so the wheel must still zoom. + bool brushResizeClaimsWheel = PanEnabled && (InputUtil.ShiftHeld() || InputUtil.CtrlHeld()); + float scroll = brushResizeClaimsWheel ? 0f : InputUtil.ReadScroll(); if (!Mathf.Approximately(scroll, 0f)) { // One wheel notch = one zoom step (sign only, platform-independent). The step scales with