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

Unity3D中如何基于鼠标水平移动实现玩家对象Y轴旋转?

实现鼠标水平控制玩家绕Y轴旋转(无上下视角)

核心思路

只读取鼠标的水平(X轴)移动输入,将输入值转化为玩家对象绕Y轴的旋转角度,完全忽略鼠标垂直(Y轴)输入,以此模拟Minecraft的水平转向效果。

Unity C# 实现代码

创建一个脚本(比如命名为PlayerHorizontalRotation),挂载到玩家对象上:

using UnityEngine;

public class PlayerHorizontalRotation : MonoBehaviour
{
    // 鼠标灵敏度,可在Inspector中调整
    public float mouseSensitivity = 100f;

    void Start()
    {
        // 锁定鼠标到屏幕中心并隐藏光标,提升操作体验
        Cursor.lockState = CursorLockMode.Locked;
    }

    void Update()
    {
        // 获取鼠标X轴的移动增量
        float mouseX = Input.GetAxis("Mouse X") * mouseSensitivity * Time.deltaTime;

        // 绕Y轴旋转玩家:使用Rotate方法直接修改局部旋转的Y轴
        transform.Rotate(Vector3.up * mouseX);

        // 或者手动计算欧拉角(效果一致,适合需要更精细控制的场景)
        // Vector3 currentRotation = transform.localEulerAngles;
        // currentRotation.y += mouseX;
        // transform.localEulerAngles = currentRotation;
    }
}

关键注意事项

  • 锁定鼠标:Cursor.lockState = CursorLockMode.Locked能避免鼠标移出游戏窗口导致操作中断,退出游戏时记得恢复光标状态(可在OnApplicationQuit或暂停菜单中处理)。
  • 灵敏度调整:根据游戏手感在Inspector中修改mouseSensitivity的值,数值越大转向越灵敏。
  • 相机跟随:如果有第三人称或第一人称相机,让相机作为玩家对象的子物体即可,无需额外处理相机旋转,相机会自动跟随玩家的Y轴转向。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 11:20:33