//把下面的代码挂在摄像机中
//摄像机跟随的主角物体
public Transform target;
//摄像机距离模型的默认距离
public float distance = 20.0f;
//鼠标在x轴和y轴方向移动的速度
float x;
float y;
//鼠标在x和y轴方向移动的速度
float xSpeed = 250.0f;
float ySpeed = 120.0f;
void Start()
{
if (gameObject.GetComponent<Rigidbody>() != null)
{
gameObject.GetComponent<Rigidbody>().freezeRotation = true;
}
}
void LateUpdate()
{
if (target)
{
//我的分析:1.根据垂直方向的增减量修改摄像机距离参照物的距离
distance += Input.GetAxis("Vertical");
//根据鼠标移动修改摄像机的角度
x += Input.GetAxis("Mouse X") * xSpeed * 0.02f;
y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02f;
Quaternion rotation = Quaternion.Euler(y, x, 0);
Vector3 position = rotation * new Vector3(0.0f, 0.0f, -distance) + target.position;
//设置摄像机的位置与旋转
transform.rotation = rotation;
transform.position = position;
}
}
void Update()
{
}
}