diff --git a/Assets/Scripts/BaseCameraController.cs b/Assets/Scripts/BaseCameraController.cs index 4d02e6bb1e3d8bdc402ea79efbf0514902cf4d33..ca53edbedc9c9a24fbdf4fde03cfb5955e12b909 100644 --- a/Assets/Scripts/BaseCameraController.cs +++ b/Assets/Scripts/BaseCameraController.cs @@ -78,6 +78,9 @@ public class BaseCameraController : MonoBehaviour AnimateToPosition(player.transform.position + new Vector3(0f, 0.75f), 1.5f, 0.1f); } + // Disable collider while there is an ongoing animation + collider.enabled = !HasOverriddenOnterpolators(); + mouseMovementEdges.DrawDebug(!IsUserControlEnabled() ? Color.yellow : waitForMouseOutsideEdges ? Color.red : Color.green); if (IsUserControlEnabled()) { @@ -117,6 +120,7 @@ public class BaseCameraController : MonoBehaviour zoomInterpolator.targetValue += inputZoomDelta; } } + // Always interpolate zoom as that might be animted without user input enabled if (zoomInterpolator.running) { @@ -147,7 +151,12 @@ public class BaseCameraController : MonoBehaviour bool IsUserControlEnabled() { - return allowUserControl && !zoomInterpolator.hasInterpolatorsQueued && !xPositionInterpolator.hasInterpolatorsQueued && !yPositionInterpolator.hasInterpolatorsQueued; + return allowUserControl && !HasOverriddenOnterpolators(); + } + + bool HasOverriddenOnterpolators() + { + return zoomInterpolator.hasInterpolatorsQueued || xPositionInterpolator.hasInterpolatorsQueued || yPositionInterpolator.hasInterpolatorsQueued; } // Resize the attached collider to fit the visible camera bounds