ugui绘制由兄弟索引引起的调用

时间:2015-11-18 17:20:15

标签: unity3d unity3d-gui

兄弟索引对UGUI深度排序的影响是什么? 我看不到任何改进,但只有这个

的缺点

例如,我有一个使用scrollRect的游戏正在使用多个对象。 我的对象有一些图像和一些文本。 如果您按如下方式订购:

-content

-object

- 图像

-Text

- 图像

-Text

- 图像

-Text ...等

每个对象将获得6个drawCall。 对于使用相同字体和相同图像的10个对象,您将有60个绘图调用!!!

好的,你可以按照以下方式优化它们

-content

-object

- 图像

- 图像

- 图像

-Text

-Text

-Text

...等

每个对象将有一批3张图像和一批3个文本。 但是你仍然可以为每个对象获得2次绘制调用,因此20个绘制调用10个IDENTICAL OBJECTS。

想象一下,你有5个不同的滚动视图,里面有对象(就像我一样),有5个对象可见,每个对象比图像组件和文本组件更复杂一些。 事实上,我有以下层次结构。

-object

-Text(1次抽签)

- 图像

-Image(1个绘制调用 - 与上面的一个批处理)

-Text(1次抽签)

-Image(1次抽签)

-Text(1次抽签)

-Image(1次抽签)

-Text(1次抽签)

我无法修改层次结构,因为某些图像是按钮,为了保持文本清晰并以每个纵横比为中心,它们需要是按钮的子项并固定在它们上面。 我的对象生成了7个绘制调用,并且在5个不同的滚动视图上有5个可见对象,让我得到7 * 25 = 175个绘制调用。

现在,使用基于z的深度,我们只有2次绘制调用。 因此,我的问题出现了,这种方法有什么用? 为什么Unity会这样做? 这是否有积极的结果,我太盲目无法看到它?

1 个答案:

答案 0 :(得分:0)

我想这一切都会回到渲染顺序和批处理。为了研究单个绘制调用中的内容,使用Unitys构建Frame Debugger,非常有用的工具。

如果您希望进一步优化,请在精灵设置中使用Packing Tag。 Unity将为您创建UI地图集,您的绘制调用将大大减少。

enter image description here