Unity里面实现Camera围绕物体旋转

在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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_33547099/article/details/103918738
今日推荐