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输出
困了,先睡觉
标签:DrawCall,DC,A1,unity,优化,图集,Panel 来源: https://blog.csdn.net/zhangjiyuan666/article/details/117715886