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

Unity中如何实现相机Y轴转动不带动角色,仅保留X轴转向功能

解决Unity中角色与相机旋转分离的问题

没问题,我来帮你搞定这个需求——让角色只做左右转动,相机单独实现上下转动,同时角色完全不会跟着相机倾斜,位置也保持固定不动。

核心思路是把角色旋转和相机旋转逻辑拆分开:角色只负责绕Y轴(左右方向)转动,相机作为角色的子对象(或单独控制)负责绕自身X轴(上下方向)转动,两者旋转互不干扰,自然就能避免角色跟着相机倾斜的问题。

修改后的完整代码

using UnityEngine;

public class PlayerCameraController : MonoBehaviour
{
    // 拖拽你的玩家角色对象到这里
    public Transform playerTransform;
    // 拖拽你的主相机对象到这里
    public Transform cameraTransform;

    // 角色左右旋转的速度
    public float horizontalRotateSpeed = 2.0f;
    // 相机上下旋转的速度
    public float verticalRotateSpeed = 2.0f;

    // 限制相机上下旋转的角度,避免过度抬头/低头导致视角翻转
    public float minPitchAngle = -60f;
    public float maxPitchAngle = 60f;

    private float currentPitch = 2.0f;

    private void Update()
    {
        // 处理角色的左右旋转:仅绕世界Y轴转动,位置保持不变
        float horizontalInput = Input.GetAxis("Mouse X");
        if (horizontalInput != 0)
        {
            playerTransform.Rotate(Vector3.up, horizontalInput * horizontalRotateSpeed);
        }

        // 处理相机的上下旋转:仅绕自身X轴转动,不影响角色
        float verticalInput = Input.GetAxis("Mouse Y");
        if (verticalInput != 0)
        {
            currentPitch -= verticalInput * verticalRotateSpeed;
            // 锁定相机旋转角度范围
            currentPitch = Mathf.Clamp(currentPitch, minPitchAngle, maxPitchAngle);
            // 仅修改相机自身的X轴旋转值
            cameraTransform.localEulerAngles = new Vector3(currentPitch, 0, 0);
        }
    }
}

配置步骤

  1. 在场景中选择你的玩家角色对象,把这个脚本挂载上去。
  2. 在Inspector面板里,将角色对象拖入playerTransform字段,主相机拖入cameraTransform字段。
  3. 把相机设置为角色的子对象(这样相机能跟着角色同步左右移动,但旋转逻辑完全独立),同时调整相机的初始位置到合适的视角(比如角色头部前方)。

关键细节说明

  • 角色仅响应Mouse X输入,绕世界Y轴旋转,确保只会左右转向,不会出现上下倾斜的情况。
  • 相机仅响应Mouse Y输入,绕自身X轴旋转,通过localEulerAngles保证旋转只作用在相机自身,不会传递给父对象(角色)。
  • 用Mathf.Clamp限制相机的上下旋转角度,避免相机翻转到不合理的视角。
  • 全程没有修改角色的位置参数,确保玩家位置始终保持不变。

这样设置后,你就能实现:角色只能左右转动,相机可以自由上下转动,角色不会跟着倾斜,位置也纹丝不动的效果啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:41:29