using System.Collections; using System.Collections.Generic; using UnityEngine; using static Unity.Mathematics.math; public class DragHandler : MonoBehaviour { public Camera Camera; public float Scaling; public ClickCatcher Background; private Vector2 _previousPosition; private bool _isDragging; void Update() { var newPosition = Camera.ScreenToWorldPoint(Input.mousePosition); if (!Input.GetMouseButton(0)) _isDragging = false; if (_isDragging) Camera.transform.position -= (Vector3) ((Vector2) newPosition - _previousPosition); if (Background.PointerIsInside) { if (Input.GetMouseButtonDown(0)) { _previousPosition = newPosition; _isDragging = true; } if (abs(Input.mouseScrollDelta.y) > .01f) { var previousPosition = Camera.ScreenToWorldPoint(Input.mousePosition); Camera.orthographicSize *= 1 + Input.mouseScrollDelta.y * Scaling; Camera.transform.position -= Camera.ScreenToWorldPoint(Input.mousePosition) - previousPosition; } } } }