using System.Collections; using System.Collections.Generic; using UnityEngine; [RequireComponent(typeof(Camera))] public class CameraPan : MonoBehaviour { public string axisName; protected Vector3? lastMousePosition; protected GameController gameController; protected void Awake() { gameController = GameObject.FindGameObjectWithTag("GameController").GetComponent(); } private void Start() { lastMousePosition = null; } private void Update() { bool panIsPressed = Input.GetAxisRaw(axisName) != 0f; Vector3? currentMousePosition = null; if(panIsPressed) { currentMousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); if(lastMousePosition.HasValue) { Vector3 positionDelta = lastMousePosition.Value - currentMousePosition.Value; Camera.main.transform.position += positionDelta; currentMousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); } } lastMousePosition = currentMousePosition; if(Input.GetAxisRaw("ResetCamera") > 0) { if(gameController.blackHole != null) { Camera.main.transform.position = new Vector3(gameController.blackHole.transform.position.x, gameController.blackHole.transform.position.y, Camera.main.transform.position.z); } } } }