Just googling around to find how to rotate camera with mouse click and drag. Thanks to this link: https://answers.unity.com/questions/1189946/click-and-drag-to-rotate-camera-like-a-pan.html

This code is originally taken from that link:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CamRotate : MonoBehaviour { public float speed = 3.5f; private float X; private float Y; void Update() { if(Input.GetMouseButton(0)) { transform.Rotate(new Vector3(Input.GetAxis("Mouse Y") * speed, -Input.GetAxis("Mouse X") * speed, 0)); X = transform.rotation.eulerAngles.x; Y = transform.rotation.eulerAngles.y; transform.rotation = Quaternion.Euler(X, Y, 0); } } } |

Then I made a slight changes to clamp vertical camera rotation:

1 2 3 4 5 6 7 8 9 10 |
if(Input.GetMouseButton(0)) { transform.Rotate(new Vector3(Input.GetAxis("Mouse Y") * speed, -Input.GetAxis("Mouse X") * speed, 0)); X = transform.rotation.eulerAngles.x; if (X > 60.0f && X < 70.0f) X = 60.0f; if (X < 300.0f && X > 290.0f) X = 300.0f; Y = transform.rotation.eulerAngles.y; transform.rotation = Quaternion.Euler(X, Y, 0); } |