unity资源加载模块,加载是否卡顿,等待耗时是否长久,资源加载和引用是否合理等都会直接影响 内存,CPU性能。下面直接说核心问题:
核心问题:
1.加载耗时瓶颈
2.资源加载是否合理
3.实例化操作是否合理
4.Active/Deactive操作是否合理
以下内容会就上面的核心问题进行分析:
图中的顺序:卸载上一个场景中的garbge-》加载新的-》资源加载的后处理Awake等-》实例化(若问下图中的函数界面是如何出现的,请查看前一篇文章:unity连接手机设备调试FrameDebug和Profiler,Memory加载和卸载调试)
同步加载:
同步和异步的直接比较:异步时不卡主线程,主线程可以继续逻辑运行。
加载一个prefab的过程:
(1)先加载mesh
(2)texture加载上传到GPU
(3)加载Shader和Material 。(shader单独打包可以,第一次启动游戏时预热Shader.parse,当再用到shader时shader就不卡主线程了)Animation等也是在shader之前加载完成
(4)加载obj和component
(5)其实加载可以这样:
二 关于Async Upload Pipeline
可以查看此解释(https://blog.youkuaiyun.com/qq_33461689/article/details/104931028)
在ProjectSetting中Quality下可以找到设置:![在这里插入图片描述](https://img-blog.csdnimg.cn/20200813002237648.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2pzMD
在2018.3之前版本,此功能慎用
上图中,在子线程中读取上传到GPU,对主线程没有影响
三.Background Loading Priority
四。异步加载注意事项