unity3d第一人称移动,鼠标旋转控制视角
第一人称游戏是我们经常会遇到的,像经典的CS等游戏作品,在unity3d中要实现第一人称控制移动,可以通过脚本让鼠标控制人物或者摄像机的旋转来实现。
操作方法
- 01
打开unity3d创建一个立方体作为要控制的人物。
- 02
给立方体添加rigidbody,并且把“ Freeze Rotation”的 xyz都勾选,冻结旋转。
- 03
创建一个” First“脚本。
- 04
打开First脚本,创建三个变量,在 Start中初始化相机的位置。 camTrans = Camera.main.transform; Vector3 startPos = transform.position; startPos.y += camHeight; camTrans.position = startPos; camTrans.rotation = transform.rotation; camAng = camTrans.eulerAngles;
- 05
新建一个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;
- 06
在 update方法中调用 Rot_move方法,以及监听 W键向前移动。
- 07
把 First脚本放在立方体上面。
- 08
运行游戏,现在我们就可以按住W按键向前移动,鼠标控制移动方向。