using UnityEngine; using System.Collections; public class Firstperspective : MonoBehaviour { public GameObject player; //声明player游戏对象 /*定义rot向量,初始值为(0,0,0)*/ Vector3 rot = Vector3.zero; public float speed; //鼠标灵敏度值 void Start() { } void Update() { /*获取鼠标X轴移动值,并乘以灵敏度speed*/ float MouseX = Input.GetAxis("Mouse X") * speed; /*获取鼠标Y轴移动值,并乘以灵敏度speed*/ float MouseY = Input.GetAxis("Mouse Y") * speed; /* rot.x减去鼠标Y轴移动量 */ rot.x = rot.x - MouseY; /* rot.y加上鼠标X轴移动量*/ rot.y = rot.y + MouseX; /*锁定z轴旋转*/ rot.z = 0; /*将rot的值赋给当前游戏对象的欧拉角*/ transform.eulerAngles = rot; /*只让角色的y轴旋转,x和z轴锁定*/ player.transform.eulerAngles = new Vector3(0, rot.y, 0); } }
上述代码实现了第一人称视角控制。通过获取鼠标的X轴和Y轴移动来控制摄像机的旋转。Z轴被锁定防止左右倾斜。角色对象的旋转只通过鼠标X轴控制,Y轴和Z轴被锁定。通过修改speed的值可以调整灵敏度