diff --git a/Assets/Scripts/BaseCameraController.cs b/Assets/Scripts/BaseCameraController.cs index 4e001d9ac888b2cc5a7dfeacf516fcb1053367c0..745a8a95fca79b50b20444154034126edef2ee92 100644 --- a/Assets/Scripts/BaseCameraController.cs +++ b/Assets/Scripts/BaseCameraController.cs @@ -4,6 +4,9 @@ using UnityEngine; public class BaseCameraController : MonoBehaviour { + [Header("General")] + [SerializeField] bool allowUserControl = true; + [Header("Movement")] [SerializeField] float moveSpeed = 10f; [SerializeField] Vector2 edgeDetectionBoxInsets = new Vector2(0.1f, 0.1f); @@ -35,6 +38,11 @@ public class BaseCameraController : MonoBehaviour audio.PlayOneShot(clip, volume); } + public void SetUserControlEnabled(bool allowUserControl) + { + this.allowUserControl = allowUserControl; + } + void Awake() { camera = GetComponent<Camera>(); @@ -51,7 +59,7 @@ public class BaseCameraController : MonoBehaviour void Update() { - var inputZoomDelta = Input.mouseScrollDelta.y * -zoomStepSize; + var inputZoomDelta = allowUserControl ? Input.mouseScrollDelta.y * -zoomStepSize : 0; if (inputZoomDelta != 0) { zoomInterpolator.targetValue += inputZoomDelta; @@ -69,7 +77,7 @@ public class BaseCameraController : MonoBehaviour waitForMouseOutsideEdges = true; } mouseMovementEdges.DrawDebug(waitForMouseOutsideEdges ? Color.red : Color.green); - var mouseViewportPos = camera.ScreenToViewportPoint(Input.mousePosition); + var mouseViewportPos = allowUserControl ? camera.ScreenToViewportPoint(Input.mousePosition) : new Vector3(0.5f, 0.5f); var mouseInputVector = mouseMovementEdges.GetOutOfBoundsDirection(mouseViewportPos); if (waitForMouseOutsideEdges && mouseInputVector.magnitude == 0) {