添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
低调的鸵鸟  ·  jsoup 1.18.1 发布,Java ...·  11 月前    · 
酷酷的扁豆  ·  【错误记录】Windows ...·  1 年前    · 
任性的香瓜  ·  QML 动态创建元素_qml ...·  1 年前    · 
不羁的剪刀  ·  React Hooks踩坑分享 - ...·  2 年前    · 
float mouseX = Input . GetAxis ( "Mouse X" ) ; float mouseY = Input . GetAxis ( "Mouse Y" ) ; // 在这里可以使用鼠标移动的值来进行相应的操作
unity,鼠标获取屏幕移动,用于fps游戏视角,左右移动旋转,上下移动抬头低头
首先,我们需要获取鼠标在屏幕上的移动量。
在Unity中,可以使用Input.GetAxis("Mouse X")获取鼠标在水平方向上的移动量,
使用Input.GetAxis("Mouse Y")获取鼠标在垂直方向上的移动量。
然后,我们需要将鼠标移动量转换为视角旋转和抬头低头的角度。
可以使用Transform.Rotate方法来实现视角的旋转,
使用Transform.localEulerAngles来修改物体的本地欧拉角,从而实现抬头低头的效果。
public float sensitivity = 100f; // 鼠标灵敏度
public Transform playerBody; // 玩家角色
float xRotation = 0f;
void Update()
    float mouseX = Input.GetAxis("Mouse X") * sensitivity * Time.deltaTime;
    float mouseY = Input.GetAxis("Mouse Y") * sensitivity * Time.deltaTime;
    xRotation -= mouseY;
    xRotation = Mathf.Clamp(xRotation, -90f, 90f); // 限制抬头低头的角度
    transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);
    playerBody.Rotate(Vector3.up * mouseX);
        // 将物体的位置设置为鼠标位置
        transform.position = new Vector3(mousePosition.x, mousePosition.y, transform.position.z);
上述代码会在每一帧更新物体的位置,使其跟随鼠标移动。具体而言,它首先获取鼠标在屏幕上的位置,然后将其转换为世界坐标系中的位置。最后,将物体的位置设置为鼠标位置,但保持它原来的 z 坐标值不变。