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

Unity UI中Pos Z更靠前的文本被按钮遮挡的原因及解决方法

问题诱因

UGUI的渲染排序规则和常规3D物体Z轴排序逻辑完全不同,导致该问题的核心原因如下:

  • 只有当Canvas渲染模式设置为世界空间(World Space) 时,Rect Transform的Pos Z才会直接影响UI层级。绝大多数场景下UI用的都是屏幕空间-叠加(Screen Space - Overlay) 或者屏幕空间-相机(Screen Space - Camera) 模式,这两种模式下Pos Z对同Canvas内的元素排序几乎没有影响。
  • 上述两种常用模式下,同Canvas内UI元素的渲染优先级由Hierarchy面板的层级顺序决定:同一父物体下,排列越靠后的元素渲染越晚,显示层级越高。你当前的文本元素大概率在Hierarchy中的排列位置比按钮更靠前,所以按钮会后渲染覆盖文本。
  • 如果元素绑定了独立Canvas、Sorting Group组件,还会优先按Sorting Layer、Order in Layer的数值判断层级,这两个参数的优先级远高于Z轴坐标。

问题场景界面截图

可行解决方案

根据你的项目场景可以任选以下方案解决:

  • 调整Hierarchy层级:直接将文本元素拖到按钮元素的下方,同一父物体下靠下的UI会自动显示在上层,无需修改其他参数,是最简单的解决方案。
  • 调整排序参数:给文本添加独立Canvas组件,勾选Override Sorting选项,设置它的Order in Layer数值高于按钮所在的Canvas数值即可。
  • 启用Z轴排序逻辑:如果确实需要用Z轴控制UI层级,将根Canvas的渲染模式修改为世界空间(World Space),此时Z值越小的元素距离相机越近,就会符合你最初的层级预期,不过该模式下需要额外调整UI适配、射线检测逻辑。
  • 用Canvas Group调整:给按钮添加Canvas Group组件,调整层级权重也能实现文本上浮显示的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:24:02