Unity性能优化笔记——UI优化

NGUI:

public class UIGeometry
{
   public BetterList verts = new BetterList();
   public BetterList uvs = new BetterList();
   public BetterList cols = new BetterList();
   public BetterList< mRtpVerts = new BetterList();
}


UGUI:

public class VertexHelper:IDisaposable
{
   private List m_Positions = ListPool.Get();
   private List m_Colors = ListPool.Get();
   private List m_Uv0s = ListPool.Get();
   private List m_Uv1s = ListPool.Get();
   private List m_Normals = ListPool.Gte();
   private List m_Tangents = ListPool.Get();
   private List m_Indices = ListPool.Get();
}

元素更新方式:
NGUI:
UIPanel.LateUpdate
1.轮询
2.UIPanel.UpdateWidgets

UGUI:
Canvas.SendWillRenderCanvas
1.队列
2.m_LayoutRebuildQueue
3.m_GraphicRebuildQueue
UGUI如果Canvas没有变化Canvas.SendWillRenderCanvas是完全没有开销的

处理隐藏显示元素方式
NGUI: 
      1.大量的SetActive(false),
      2.适量的Color.a = 0 ,移出 
      3.Time + 二级缓存
UGUI
      1.scale = 0,Alpha Group = 0

修改一个UI元素最终会转变成很多组的顶点属性,同过这些顶点属性转换成mesh。动态的UI元素要控制数组里面的顶点数。
对于制作的影响:
1.“动态”元素尽量少用OutLine.Tiled Sprite。
2.尽量减少“动态”长文本。

待补充。。。

你可能感兴趣的:(知识点记录,U3d,unity)