unity优化篇

CPU优化

想到什么就记录点什么

CPU的优化主要就是内存的DrawCall

1.在unity4.0和5.0的时候大部分使用的还是NGUI,可以优化图集来进行优化DrawCall,因为一个Panel就是一个DrawCall,Panel每个面板还必须挂载,而且一些ScrollView之类也有Panel。 在同一个Panel下方使用了几个图集就是几个DrawCall,所以那个时候打图集很讲究,既要考虑通用性,又考虑DrawCall的大小。在后来使用UGUI后极大的改善了对图集使用的优化,可以不那么考虑图集来制作,大大的方便了开发者。

2.还有就是在特效,特效有个设置叫build in layer ,这同一个特效下面要给他设置不同的层级,要不然drawcall会增加

3.透明的image会造成DragCall增加,加个脚本
下面展示一些 内联代码片

using UnityEngine;
using System.Collections;
namespace UnityEngine.UI
{
public class Empty4Raycast : MaskableGraphic
{
protected Empty4Raycast()
{
useLegacyMeshGeneration = false;
}
protected override void OnPopulateMesh(VertexHelper toFill)
{
toFill.Clear();
}
}
}

4.顺序和重叠问题 A ,B , C , A1三个image ABC是分别3个图集,A1和A是一个图集,A1放到A的上面,DC没变化,然后把A1放到B和C的上面,DC增加了1个,这个时候在把A1的层级移动到ABC的下面,DC返回原来的数量

5.旋转 x 和 y旋转的时候DC会增加

内存的优化

1.不要在Update中去设置一些临时变量,因为它会向系统中申请大量的内存
2.连接字符串的时候使用stringbuilder
3.多次使用GetComonent, .name ,tag等之类的方法会产生垃圾
4.yield的时候返回null,不要返回0或者1之类的
5.优化贴图,使用non power
6.关闭贴图的Read & Write功能
7.AssetBuild加载
8.log输出

困了,先睡觉

上一篇:使用PowerShell管理Office 365资源邮箱


下一篇:python编写api调用ceph对象网关