Unity-性能优化

CPU优化

  • 视锥体剔除,遮挡剔除

  • 合理安排图片和材质,使用unity批处理( 减少DrawCall)
    1.合并模型
    2.合并纹理
    3.打图集

  • 脚本重构(小步快跑原则)
    1.减少重复代码。
    2.拆分过大的类或方法。
    3.引入外观或抽象,减少类的耦合度,增加重用性。
    4.修改类名或方法名,减少不必要的注释。
    5.属性或方法适当的封装,减少不必要的公开。
    6.添加适当的注释行文字,方便他人或自己阅读脚本。
    7.使用“函数”或“全局变量”替换那些频繁创建的临时变量。
    8.使用“状态机”或者“多态”替换条件表达式。
    ...

  • 脚本优化
    1.避免频繁地Find、GetComponent,特别是Update中。
    2.少使用临时变量,特别是在Update中。
    3.使用for代替foreach,foreach使用迭代器会产生GC。特别是在Update中。
    4.尽量不要频繁的Instantiate和Destroy,使用对象池技术。
    5.使用内建的常量,例如Vector3.zero等
    6.使用gameObject.CompareTag(“XXX”)而非gameObject.tag
    7.避免频繁的使用Distance和magnitude等方法,需要开根号,较费性能。特别是Update中。
    8.使用消耗更小的运算:例如1/5使用1*0.2来代替
    9.避免在循环或者是Update中进行string字符串操作,因为string是常亮不可修改。
    10.如果没有必要每帧都处理,则可以每隔几帧处理一次
    11.Ref可以多使用,传参会多一次拷贝
    12.Queue或者Stack来代替List
    13.背景音乐选择mp3压缩格式,尽量不超过100s,尽量不要提前拖拽到场景内
    14.减少物理引擎计算,尽量少加刚体。
    15.释放不使用的资源内存。避免内存泄露

内存优化

  • 模型定点优化
  • UI优化
    1.小图放大显示
    2.九宫格
    3.图片的复用
    4.MipMaps
    5.图片尺寸尽量保证2的n次幂

GPU优化

  • 光照贴图
  • 动态光探针,反射探针
  • LOD
  • MipMaps
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 有时在一些场合,自己突然想到一些话要说的时候,时常会马上袭来极大的恐惧,好像要把自己压缩起来,尤其是人稍多些的场合...
    柴子恒阅读 2,662评论 0 0
  • Android移动应用数据统计工具按照功能划分为两类,一类是用户行为数据收集,如新增注册用户数,留存用户数,活跃用...
    JackMeGo阅读 9,913评论 1 6
  • 面对万千世界,我们好像对什么都有兴趣,可又好像对什么都没那么喜欢~
    七七妤爱森森马阅读 1,014评论 0 0
  • 词:董书利 有没有一首歌 让你喜欢多年 有没有一个人 至今还在思念 已不知听了多少遍 一首只属于你我青春的歌 爱不...
    星巢文化阅读 1,410评论 2 1