转自:http://dsqiu.iteye.com/blog/1973651
两个以New atlas图集为material的DrawCall夹着一个以font为字体集的DrawCall间隔,然后使用MonoBehaviour的断点调试功能进行跟踪得到UIWidget.list队列:
发现一个规律:使用相同material的连续UIWidget(UILabel,UISprite)共用一个UIDrawCall。这样就给了一个解决策略:对UIWidget.list进行排序,使得使用相同的material的UIWidget在UIWidget.list相连,而UIWidget.list是根据UIWidget的depth进行排序的。所以可以有如下两种方法:
1)修改UIWidget(UILabel,UISprite)的depth,限定好UIWidget.list的排序
2)重写UIWidget的PanelCompareFunc方法。
--------------------------------------------------------------------------------
经测试,1可行但是比较繁琐,需要人工做调整;2暂不可行,通过排序同一个材质的排在一起,此时depth作用基本失效,有时需求同一材质的图片中间可能夹层其他材质,基本无效