怎样用鼠标控制摄像机的移动旋转
发布网友
发布时间:2022-04-20 08:09
我来回答
共1个回答
热心网友
时间:2023-06-27 16:15
打开unity3d创建一个立方体作为要控制的人物。
unity3d第一人称移动,鼠标旋转控制视角
给立方体添加rigidbody,并且把“Freeze Rotation”的xyz都勾选,冻结旋转。
unity3d第一人称移动,鼠标旋转控制视角
创建一个”First“脚本。
unity3d第一人称移动,鼠标旋转控制视角
打开First脚本,创建三个变量,在Start中初始化相机的位置。
camTrans = Camera.main.transform;
Vector3 startPos = transform.position;
startPos.y += camHeight;
camTrans.position = startPos;
camTrans.rotation = transform.rotation;
camAng = camTrans.eulerAngles;
unity3d第一人称移动,鼠标旋转控制视角
新建一个Rot_move方法,在里面设置相机跟随鼠标旋转、物体与相机同步旋转、更新相机位置。
float y = Input.GetAxis("Mouse X");
float x = Input.GetAxis("Mouse Y");
camAng.x -= x;
camAng.y += y;
camTrans.eulerAngles = camAng;
camTrans.position = new Vector3(this.transform.position.x,camTrans.position.y,this.transform.position.z);
float camy=camAng.y;
this.transform.eulerAngles=new Vector3(this.transform.eulerAngles.x,camy,this.transform.eulerAngles.z);
Vector3 startPos = transform.position;
startPos.y += camHeight;
camTrans.position = startPos;
unity3d第一人称移动,鼠标旋转控制视角
在update方法中调用Rot_move方法,以及监听W键向前移动。
unity3d第一人称移动,鼠标旋转控制视角
把First脚本放在立方体上面。
unity3d第一人称移动,鼠标旋转控制视角
运行游戏,现在我们就可以按住W按键向前移动,鼠标控制移动方向。
unity3d第一人称移动,鼠标旋转控制视角追问我项目的需求是只控制摄像机移动和旋转:鼠标左键控制摄像机的一移动:上下滑动控制摄像机的前后移动,左右滑动控制摄像机的左右移动,鼠标右键控制摄像机围绕某个点旋转,旋转是围绕y轴和z轴旋转的,,旋转后,在移动摄像机方向就不对了,摄像机移动是按世界坐标移动的,假如不按世界坐标移动,摄像机视口朝下会往下移动,需求是在水平面上前后移动摄像机.我知道是旋转后,坐标转换变了