unity3d - Unity3D中UIs渲染顺序的一些问题
问题描述
发现了一些超出我理解的东西。
两个图像,其中一个文本重叠。
他们是如何订购的。
3批!
这让我很困惑。正如我读过的一些官方文章,“Unity UI 是从后到前构建的,对象在层次结构中的顺序决定了它们的排序顺序。层次结构中较早的对象被认为在层次结构中较晚的对象后面。批处理由从上到下遍历层次结构,收集所有使用相同材质、相同纹理且没有中间层的对象。”
在我的理解中,文本应该在两个图像之前渲染,并且批次应该是 2 而不是 3。那么这里到底发生了什么?
解决方案
因为文本首先呈现,所以当正方形呈现时,它会越过已经绘制的像素。
“对于批处理,批处理意味着它采用所有相同的元素,具有相同的纹理和材料,并尽可能将它们放入 1 个绘图调用中。另一方面,文本总是在不同的图集中。因此,如果您有一个 Image 后跟 Text ,那么您将有 2 个绘图调用,因为它们不能被批处理在一起。” -参考这里
您可能还需要在播放器设置中启用静态或动态批处理,如果它们是静态的,请尝试在检查器中将它们标记为静态批处理。关于为什么批处理可能不起作用的更多原因,我会参考上面的链接,因为似乎有很多原因!
编辑:您使用的是默认的 Unity 文本还是 Text Mesh Pro?它很可能在渲染顺序和批次方面工作相同,但如果你不使用 TMP,你应该使用它,因为它更有效,渲染更好,并且通常具有更多功能。Unity 购买该产品以适应其基础引擎是有充分理由的。
推荐阅读
- php - 如何解决这个错误“[ErrorException] count(): Parameter must be an array or an object that implement Countable”?
- r - 如何创建自定义 Shinydashboard 皮肤
- html-email - 向电子邮件添加附件
- python - Mayavi 多场景选择器
- regex - 分组中的 SCALA 字数
- python - 错误:将检查点与图合并以获得冻结图
- r - 回复:错误!!: 'S4' 类型的对象不是子集
- html - 将 div 居中并为一侧的空间赋予颜色
- react-native-navigation - React Native Navigation:设置flex值时抽屉项目不显示或消失
- neural-network - 使用遗传算法训练井字游戏的神经网络