From 818d2cf00cf813e3fb2f23bb4fad815b178397d7 Mon Sep 17 00:00:00 2001
From: Adrian Paschkowski <git@wasdennnoch.me>
Date: Wed, 7 Apr 2021 13:09:02 +0200
Subject: [PATCH] CamController: Allow disabling user input

---
 Assets/Scripts/BaseCameraController.cs | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/Assets/Scripts/BaseCameraController.cs b/Assets/Scripts/BaseCameraController.cs
index 4e001d9..745a8a9 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)
         {
-- 
GitLab