diff --git a/Assets/Scripts/BaseCameraController.cs b/Assets/Scripts/BaseCameraController.cs
index 2a5d0ef27608fc9ff868352edcf67f02f83b8d4b..4e001d9ac888b2cc5a7dfeacf516fcb1053367c0 100644
--- a/Assets/Scripts/BaseCameraController.cs
+++ b/Assets/Scripts/BaseCameraController.cs
@@ -20,6 +20,7 @@ public class BaseCameraController : MonoBehaviour
     new Rigidbody2D rigidbody;
 
     InsetCameraEdges mouseMovementEdges;
+    bool waitForMouseOutsideEdges = false;
     Interpolator zoomInterpolator;
     Interpolator moveXInterpolator;
     Interpolator moveYInterpolator;
@@ -63,11 +64,20 @@ public class BaseCameraController : MonoBehaviour
 
         inputVector.x = Input.GetAxisRaw("Horizontal");
         inputVector.y = Input.GetAxisRaw("Vertical");
-        if (inputVector.magnitude == 0)
+        if (inputVector.magnitude != 0)
+        {
+            waitForMouseOutsideEdges = true;
+        }
+        mouseMovementEdges.DrawDebug(waitForMouseOutsideEdges ? Color.red : Color.green);
+        var mouseViewportPos = camera.ScreenToViewportPoint(Input.mousePosition);
+        var mouseInputVector = mouseMovementEdges.GetOutOfBoundsDirection(mouseViewportPos);
+        if (waitForMouseOutsideEdges && mouseInputVector.magnitude == 0)
+        {
+            waitForMouseOutsideEdges = false;
+        }
+        if (!waitForMouseOutsideEdges && inputVector.magnitude == 0)
         {
-            var mouseViewportPos = camera.ScreenToViewportPoint(Input.mousePosition);
-            mouseMovementEdges.DrawDebug();
-            inputVector = mouseMovementEdges.GetOutOfBoundsDirection(mouseViewportPos);
+            inputVector = mouseInputVector;
         }
         moveXInterpolator.targetValue = inputVector.x;
         moveYInterpolator.targetValue = inputVector.y;
@@ -139,10 +149,9 @@ public class BaseCameraController : MonoBehaviour
             Gizmos.DrawLine(worldEdges.topLeft, worldEdges.bottomLeft);
         }
 
-        public void DrawDebug()
+        public void DrawDebug(Color color)
         {
             var worldEdges = GetWorldEdges(0);
-            var color = Color.magenta;
             Debug.DrawLine(worldEdges.bottomLeft, worldEdges.bottomRight, color);
             Debug.DrawLine(worldEdges.bottomRight, worldEdges.topRight, color);
             Debug.DrawLine(worldEdges.topRight, worldEdges.topLeft, color);