Unity性能优化笔记之MMOARPG手游优化
MMOARPG手游性能优化
场景优化
场景优化能够极大提高游戏性能
1、花草树木使用Gpu Instancing
2、关闭静态合批,因为开启后Unity会把场景所有材质球一样的静态物体合并成大网格,在打包的时候新出来的网格会占用包大小
3、场景基本不重复或重复量小的物件让美术合并
4、场景分层、分块加载
5、一些相同材质球的Mesh被加载出来可用采取动态的静态合批策列,实测性能比不用好太多。
UI相关优化
同样能够提高很大的性能
1、合理、分类打图集,删除冗余图集,避免图集留白过多
2、Canvas动静分离
3、缓存高频出现的UI
4、尽量避免Mask使用
5、不同的图集不要出现交叉现象
6、如果自定义了UI组建,记得开启动态合并,比如UI光效,在符合动态合批条件的同时,mpb相同的会被动态合批
Lua优化
很多人会忽视lua的优化,其实lua优化重中之重,因为它会导致Mono内存非常有趣的增高
1、尽力避免C#与lua交互
2、交互时传的参数最好是使用最基础的数据类型,以免出现转换消耗性能和GC
3、Lua引用C#的资源或类对象不用时一定要及时释放,不然Mono会不断增大,反过来也是要及时释放
4、C#不要引用Lua匿名方法,C#引用了Lua的方法记得释放,常见的C#的某个回调事件不停的引用导致被引用次数不断累加
5、Lua代码避免使用静态对象,往往经常写代码少一个local就导致引用了C#导致Mono升高
6、Lua一定要定时GC,否则上述的内存并不会释放,Mono会超标的
状态机动画相关优化
1、动画帧回调函数、动画控制器回调方法能不用就别用或少用,没用的动画回调或挂载的回调脚本去掉,这玩意挺吃CPU的
2、动画控制器裁剪模式设置能用完全裁剪就用完全裁剪,其他两种裁剪看需要设置,或者在需要的时候切换状态,这个也可用提高不少性能。
3、动画文件就不要放在预制体里啦,单独输出动画文件出来,并且相应把文件里的动作坐标精度降低一下,减小包体大小和加载时间
物理
1、能不用网格碰撞就不用,网格碰撞消耗你懂的
2、设置里取消勾选没有交互的物理碰撞层
其他优化
1、避免在Updata上new大量数据
2、自带寻路用了的话寻路精度没必要用太高可用设置低一点,这个也能提升一些
3、注意在合适的地方使用对象池
4、Shader变体优化减少加载变体时间,常用的变体可用在加载场景的时候预先加载,避免游戏过程中加载造成的卡顿。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
