unity3d第一人称移动,鼠标旋转控制视角

作者:滴水穿石 | 创建时间: 2023-05-22
第一人称游戏是我们经常会遇到的,像经典的CS等游戏作品,在unity3d中要实现第一人称控制移动,可以通过脚本让鼠标控制人物或者摄像机的旋转来实现。...
unity3d第一人称移动,鼠标旋转控制视角

操作方法

打开unity3d创建一个立方体作为要控制的人物。

给立方体添加rigidbody,并且把“ Freeze Rotation”的 xyz都勾选,冻结旋转。

创建一个” First“脚本。

打开First脚本,创建三个变量,在 Start中初始化相机的位置。 camTrans = Camera.main.transform; Vector3 startPos = transform.position; startPos.y += camHeight; camTrans.position = startPos; camTrans.rotation = transform.rotation; camAng = camTrans.eulerAngles;

新建一个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;

在 update方法中调用 Rot_move方法,以及监听 W键向前移动。

把 First脚本放在立方体上面。

运行游戏,现在我们就可以按住W按键向前移动,鼠标控制移动方向。

温馨提示

可以对角色的移动做一下平滑过度的处理效果更好。
点击展开全文

更多推荐