You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity相机控制脚本Y轴反向移动问题求助

解决Unity相机Y轴反向移动问题

问题出在鼠标Y轴输入的处理逻辑上,只需要修改一行代码就能解决:

把 xRotation += mouseY; 改成 xRotation -= mouseY;

修改后的完整代码:

public class PlayerCam : MonoBehaviour
{
    public float sensX;
    public float sensY;

    public Transform orientation;

    float xRotation;
    float yRotation;

    void Start()
    {
        Cursor.lockState = CursorLockMode.Locked;
        Cursor.visible = false;
    }


    void Update()
    {
        //Get mouse input 
        float mouseX = Input.GetAxisRaw("Mouse X") * Time.deltaTime * sensX;
        float mouseY = Input.GetAxisRaw("Mouse Y") * Time.deltaTime * sensY;

        yRotation += mouseX;

        xRotation -= mouseY; // 这里是修改的核心行
        xRotation = Mathf.Clamp(xRotation, -90f, 90f);

        //rotate cam and orientation 
        transform.rotation = Quaternion.Euler(xRotation, yRotation, 0);
        orientation.rotation = Quaternion.Euler(0, yRotation, 0);
    }
}

原因很直观:Unity中Input.GetAxisRaw("Mouse Y")的返回值,向上移动鼠标时为正、向下为负,但相机的俯仰旋转(X轴欧拉角)需要反向逻辑——向上移鼠标要让相机抬头(对应X轴旋转值减少),向下移鼠标让相机低头(对应X轴旋转值增加),对mouseY取反就能匹配正常的操作直觉。

内容的提问来源于stack exchange,提问作者kipt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 19:30:33