UI Mesh 渲染
Q1:在GPU分析器里面看到,同一个NGUI的图集被绘制了很多次。请问是否是由于各个界面Panel不一样导致的?这种情况下如何优化?
图片中红框处的内容其实并不是同一个Atlas被多次渲染,而是拥有同一Atlas的不同Widgets在进行渲染。这些Widgets的Mesh是动态生成的,且在不同的Draw Call中,NGUI在生成它们时根据所使用的Atlas的名字进行命名,所以才会出现图片中的现象。究其原因,是因为NGUI中UI界面的Draw Call是以Panel为单位的,对于使用相同Atlas的Widget,如果被包含在不同的Panel中,那么它们将不会被合并到一个Draw Call中,因此在Unity Profiler中的Render.Mesh中出现了多个相同名称的UIMesh。一般来说,我们建议研发团队在UI制作时尽可能将同一Atlas中的UI元素放在同一Panel中使用,这样将会有效避免额外Draw Call的生成。