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

Unity Canvas的Screen Space-Overlay与Camera模式均无法满足需求的问题

Unity 2D UI 固定相机且始终显示在最上层的解决方案

方法1:Screen Space-Camera + 渲染层级控制

  • 将Canvas设置为Screen Space-Camera,指定你的2D主相机作为Render Camera
  • 在Project Settings → Tags and Layers里新建专属Sorting Layer(比如命名为UI_Top),并拖到所有层的最顶部
  • 选中Canvas,在Canvas组件中将Sorting Layer设为UI_Top,Sorting Order设为较大值(比如100)
  • 确保所有场景游戏对象的Sorting Layer低于UI_Top,或Sorting Order数值小于UI的数值。2D正交相机下,渲染顺序由Sorting Layer和Sorting Order决定,无需修改Z轴。

方法2:双相机分离渲染(推荐)

  • 保留原有2D游戏相机:设置Depth为0,Culling Mask勾选所有非UI层,负责渲染场景对象
  • 新建正交相机:
    • 把Clear Flags设为Depth Only(避免覆盖游戏相机画面)
    • Culling Mask只勾选UI层
    • Depth设为1(数值大于游戏相机,确保后渲染、覆盖在最上层)
  • 将UI Canvas设为World Space,调整Rect Transform大小适配相机视野(比如相机Size为5时,Canvas宽设10、高设8,对应16:9比例)
  • 把Canvas拖到UI相机下作为子物体,UI会跟随相机移动,且始终在场景内容之上。

方法3:修复Screen Space-Overlay的缩放问题

如果偏好使用Screen Space-Overlay,解决画布过大问题:

  • 选中Canvas,找到Canvas Scaler组件
  • 将UI Scale Mode改为Scale With Screen Size
  • 设置Reference Resolution为游戏设计分辨率(比如1920x1080),Match值按需调整,UI会自动适配不同屏幕分辨率,不会出现画布过大的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 19:22:16