极简版
//目标飞船
public Transform target;
//摄像机距离
public float distance = 100;
void Update()
{
float mouseX = Input.GetAxis("Mouse X");
float mouseY = Input.GetAxis("Mouse Y");
Vector3 rot = new Vector3(-mouseY, mouseX, 0);
if (Input.GetMouseButton(0))
{
//设置摄像机角度
transform.eulerAngles += rot;
//由于没有z轴旋转,且z轴直接指向目标,所以以目前摄像机角度的forward向后退即可。
this.transform.position = target.position - this.transform.forward * distance;
}
}