unity 优化之四
1.音乐设置:
Force to Mono:关闭立体声音效减小一倍。
Preload Audio Data:预加载减少卡顿,打开
LoadType:Decompress On Load,加载后解压缩。一般用于较小的音效,避免运行时解压缩的性能开销。
Compression Format:ios平台建议mp3压缩格式(Ios设备自带mp3的硬件解码器),android平台推荐vorbis压缩格式。
Quality:播放质量可以降低质量减少包体和内存占用。
LoadType:CompressedIn Memory,播放时解压,在内存中时压缩的,增加CPU开销但节省内存。用在一些较大的文件并且不经常播放。如果是BGM要设置成Stream from disc从磁盘流读取,节省内存。
2.Camera.main直接调用开销较高。解决方案:因为Unity会遍历所有的Camera,是一个线性时间。在Update中调用的话,缓存一下main Camera
3.特效粒子贴图合并
4.资源不需要animation的在Rig里选择none而不是默认的legacy否则会自动生成animato
5.动画的更新可以设置Culling
- Mode:剔除模式:Always Animate表示即使摄像机看不见也要进行动画播放的更新,Cull Update
- Transform表示摄像机看不见时停止动画播放但是位置会继续更新,Cull Completely表示摄像机看不见时停止动画的所有更新。
6、模型,贴图和动画不要勾选Read/Write这样会在内存中再开辟一份做更新
7、贴图不需要Lightmap
不需要mipmap的贴图不能勾生成Mipmap。Mipmap旨在有效降低渲染带宽的压力,提升游戏的渲染效率。但是,开启Mipmap会将纹理内存提升1.33倍。对于具有较大纵深感的3D游戏来说,3D场景模型和角色我们一般是建议开启Mipmap功能的,但是UI或者俯视角的游戏开启Mipmap并不会提升渲染效率,反倒会增加无谓的内存占用
8、模型文件通常是勾压缩的而且是high,如果满足不了再降低或者关闭【实际测试高会有些问题,中还不错,看情况】
9、法线的计算方式,不需要Normal的时候选none。如果不使用发现勾了发现本身就会浪费不必要的内存,更严重的是如果项目对Mesh进行Draw
Call Batching操作的话,合并后的大mesh将也带Normal信息造成极大浪费,特别如果合并的Mesh中只要有一个带了Normal那么合并所有的顶点都会带Normal,Color,Tangent
10、如果动作不使用挂点可以勾Optimize【挂点这种判断不出是否有用的点可能会被优化掉】
11、美术场景等不需要动画的Rig的AnimationType应该是none
12、美术资源,贴图格式最好设置成ETC2
13、美术资源,静态资源都勾上Static
14、Shader可以设置预加载防止游戏内卡顿【实际遇到过】