在Unity中,总是会用到让一个照相机围绕物体旋转观察,我刚开始实现的时候也是没能搞清楚欧拉角的旋转方式,其实实现这个功能还是很简单的,下面索性将一些小功能自己记录分享一下,方便后面的回顾学习。
第一步 构建基本的结构
其实照相机旋转观察物体我没有真正的旋转照相机,我只是Camera放在CameraRoot节点下,通过控制父节点的旋转实现照相机的旋转。下面是结构图片。
第二步 直接上代码
代码的实现很简单就不再解释了,创建一个脚本CameraControl,直接挂在CameraRoot物体上。运行即可。
public class CameraControl : MonoBehaviour
{
private Camera mCamera;
private Transform mCameraNode;
private float mX=0;
private float mY=0;
public float mXSpeed = 1;
public float mYSpeed =1;
private float mYAngle = 0;
private float mXAngle = 0;
void Update () {
if (Input.GetMouseButton(0))
{
mX = Input.GetAxis("Mouse X");
mY = Input.GetAxis("Mouse Y");
}
else {
mX = Mathf.Lerp(mX,0,Time.deltaTime);
mY = Mathf.Lerp(mY, 0, Time.deltaTime);
}
mYAngle += mY * mYSpeed;
mXAngle += mX * mXSpeed;
mYAngle = ClampAngle(mYAngle, -90,90);
transform.rotation = Quaternion.Euler(-mYAngle, mXAngle, 0);
}
public float ClampAngle(float Angle,float minAngle,float maxAngle) {
return Mathf.Clamp(Angle, minAngle, maxAngle); }}
总结
工程链接 :https://download.csdn.net/download/qq_33547099/12095082