Unity优化技巧,随手笔记

最近由于换工作几轮面试总结下来的一点优化知识点 . 为了方便以后记忆 , 特写此博客管理留存 ,
一. Unity内存优化技巧
1.代码方面 :

1.1:对于需要频繁修改替换的字符串 , 尽量使用"stringbuild"代替"string".

1.3:切记使用"WWW"类加载资源或对文件夹进行操作时时 , 当加载或操作完一定要记得卸载关闭 , 及时释放申请的内存

1.4:切记不要在Update、FixUpdate或较高调用频率的函数中开辟堆内存 . 如:new class/array 等 , 这会对内存和性能均造 成非常大的伤害.
2.资源方面

2.1:图片的控制: 1. 图集的长宽尽量为2的n次幂 , 因为图形学中只识别2的n次幂的大小,如果不足则会补足 , 这是一段非常耗时耗内存的 .

2.2:Android与IOS对于图片的大小有规定, Android < 1024, IOS <2048 这个尺寸, 大于会造成显示异常, 等不可预料的结果

2.3:图片的压缩格式: Android : 如果带Alpha 我们一般选择 ETC4 bits+ 一张带Alpha通道的 ETC4 bits图片 . IOS 则选择: PVRTC 4 bits 压缩格式 , 或者一些背景图需要保证不失帧会选择 Automatic 16 bits / Automatic Compressed

2.4:UI图片只要对效果没有很大的影响 , 能不带Alpha则不带Alpha .

2.5:减少模型的片面数 , 骨骼数 , 贴图的大小等

2.6:使用shader处理一些难处理的特效

二.Unity DrawCall优化

Unity对DrawCall的优化为我们提供了两种优化方案 , 1. Dynamic batch(动态合批) 2. Static batch(静态合批) , 对次我们需要根据项目的真是需求去取舍

1.Dynamic Batch : 当物体总面数小于300的情况下(无论是静态还是动态) , 使用相同的材质球的情况下 , Unity 会将其合并成一个Batch , 送往GPU渲染.

2.Static Batch : 是将标明为 Static 的静态物件 , 使用相同的材质球的情况下 , Unity会自动的将物体合并为一个Batch, 送往GPU , 这对我们在项目中起到了非常巨大的帮助.

优化方式:

1.材质的复用优化 : 在项目中我们应尽量遵循材质共享复用的原则 , 减少材质的数量 , 以减少DrawCall的产生.

2.将一些不会移动的物体勾选为static , 以便合批处理.

3.在打包UI图集时 , 注意处理分类 . 将一个模块的UI打包到一个图集中 , 使得在此模块中只需要将次图集送往GPU渲染一次产生一个DrawCall , 避免反复的使用不同的图集材质球 , 导致多次渲染.

3.管理好UI界面的特效 UI 层级 , 以便控制图片的渲染顺序 , 让程序在特定的时间只需要将对应的层级使用到的图集送往GPU渲染 , 减少DrawCall产生.

记录到此 , 待补充 …

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值