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

如何避免Cinemachine虚拟相机随2D角色旋转?

解决Cinemachine相机随2D角色旋转的问题

方法1:调整相机跟随的旋转锁定

选中你的Cinemachine Virtual Camera,在Body模块里做以下设置:

  • 如果用的是Framing Transposer,将Rotation Mode改为Lock To Target With World Up,然后把World Up设置为Y轴(2D游戏默认向上方向)。这样相机只会追踪角色位置,不会继承角色的旋转角度。
  • 要是用的是Hard Lock to Target,直接在Look At模块里,取消让相机跟随角色Transform的旋转,改成固定朝向——比如手动设置X/Y/Z轴的旋转值为固定数,或者让相机看向一个与角色位置绑定但不旋转的空物体。

方法2:分离角色的视觉旋转与根节点

别直接旋转角色的根Transform,而是给角色建一个子物体专门放SpriteRenderer等视觉元素,只旋转这个子物体。角色根节点保持固定旋转,相机跟随根节点,自然就不会跟着转了。
2D游戏里常用缩放代替旋转实现左右翻转,代码示例:

// 假设visualChild是承载视觉元素的子物体Transform
float horizontalInput = Input.GetAxis("Horizontal");
if (horizontalInput < 0)
{
    visualChild.localScale = new Vector3(-1, 1, 1);
}
else if (horizontalInput > 0)
{
    visualChild.localScale = new Vector3(1, 1, 1);
}

方法3:强制锁定相机旋转

  • 给Cinemachine Virtual Camera添加CinemachineRotationCorrector扩展组件,在里面设置锁定Y轴旋转,保持相机朝向不变。
  • 或者用代码直接强制固定相机旋转,在脚本的Update方法里加:
var vCam = GetComponent<CinemachineVirtualCamera>();
vCam.transform.rotation = Quaternion.Euler(0, 0, 0); // 替换成你需要的固定旋转角度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 05:33:22