Advertisement

Unity UI 合并打包 问题?

阅读量:

今天看到一个问题,主要说的是Unity中的UI资源合批的问题

之前一直误以为主要与UI资源在Hierarchy中的布局安排相关,然而实际上这并非关键因素。因为Unity会依据同一Canvas内的UI元素进行排序处理(注:不同Canvas下的资源是不能够合批的)。

而合批的关键就是这个【排序】

先简单来说,排序主要根据三个键值:Depth、Material Id、Texture Id

  1. Depth

在通常情况下就是我们所理解的覆盖关系中。例如,在图形渲染过程中如果物体B位于物体A之上即意味着物体A会先进行绘制随后才是物体B这一步骤。我们可以将物体A与物体B设定为深度值分别为0和1;若没有任何资源相互遮挡则所有对象的深度值均设置为0。Unity引擎会在处理各个资源时依据其深度值进行排序以确保正确渲染顺序;

  1. Materail 和 Texture

Material

Material

在Unity中对资源进行系统性整理的过程,在此之后就会进入合并处理阶段。值得注意的是,在完成排序操作后需要根据整体排列后的UI资源来进行合并处理。其中排序和合并处理是两个完全独立的操作过程。

举个例子,在Hierarchy中有AABB两个资源:

  • 如果深度都是0,排完序后就是AABB,那么就是两批

  • 如果深度有覆盖是0,1,其中

全部评论 (0)

还没有任何评论哟~