关于loading:关于切换场景加载耗时的优化问题

3次阅读

共计 2022 个字符,预计需要花费 6 分钟才能阅读完成。

1)对于切换场景加载耗时的优化问题
​2)SpriteAtlas 打包 AssetBundle 后运行时内存大小和什么有关系
3)手机上应用 MRT 的限度和兼容性
4)如何管制粒子系统组件数量的下限


这是第 317 篇 UWA 技术常识分享的推送。明天咱们持续为大家精选了若干和开发、优化相干的问题,倡议浏览工夫 10 分钟,认真读完必有播种。

UWA 问答社区:answer.uwa4d.com
UWA QQ 群 2:793972859(原群已满员)

Loading

Q:在切场景时,为什么调整 Application.backgroundLoadingPriority 为 High 能够缩小加载耗时呢?

A:Application.backgroundLoadingPriority 这个 API 会限度主线程的集成的工夫,默认设置是 ThreadPriority.BelowNormal,也就是每一帧执行主线程集成的操作耗时不能超过 4 毫秒,这将会导致每一帧残余的工夫用于期待或者渲染,而这些期待和渲染的工夫都是无意义的耗时。如果把这个设置改为 ThreadPriority.High,那么每一帧执行主线程集成的操作耗时能够减少到 50 毫秒,大大减少了所须要的帧数。

这里主线程的集成工夫体现在函数 Application.Integrate Assets in Background 下面,它会受到加载 Texture、Mesh 的 Texture.AwakeFromLoad、Mesh.AwakeFromLoad 的影响,另外对于比较复杂的 Prefab(父子节点多,层数多)须要进行拼装,耗时也会体现在这个函数当中。

感激龙粲 @UWA 问答社区提供了答复,欢送大家转至社区交换

AssetBundle

Q:SpriteAtlas 打包 AssetBundle 后运行时内存大小和什么有关系?明明只有 2 张 Atlas,2 个纹理只有 6MB,最终 AssetBundle 的内存却达到 11.7MB。

A:运行时 AssetBundle 大小会受到打包 Sprite 数量的影响,打包了 1700 个 Sprite 的状况下 AssetBundle 内存 11.7MB。

测试了同样大小的 SpriteAtlas,打包了 6 个 1024*1024 大小的 Sprite,AssetBundle 大小却只有 4.9KB。

感激宗卉轩 @UWA 问答社区提供了答复

Rendering

Q:手机上应用 MRT 有什么限度吗,兼容性如何?

A:在反对 OpenGL ES 3.0 的手机上就反对 MRT,可参考:
https://www.informit.com/arti…
https://registry.khronos.org/…

另外实测过,在红米 4X 这样十分低端的手机上,MRT 也是能够失常运行的。红米 4X 的 GPU 是 Adreno 505。

感激 Xuan@UWA 问答社区提供了答复

Rendering

Q:我的项目 Overdraw 有点高,咱们想做一个与 MMO 游戏里同屏角色数量下限相似的,粒子系统下限的性能。

也就是低端分档下,当粒子数量达到某个值当前,就不再往画面里画新的粒子了。但只对特效 Prefab 数量做限度还是比拟含糊,毕竟不同特效的粒子数量不同,所以想准确到播放状态的粒子组件数量。

A1:用 Find 必定很耗时,尽量用逻辑做。比方,粒子系统个别都做缓存池治理,能够间接把相干逻辑写在这里:做一个计数器 C,某个特效 E 要实例化或出池时,同时传入它的子粒子数量 A(提前配置好),加给 C;入池再减掉 A;对 C 作监控看是否在某个值内,否则进行所有实例化和出池操作。同理,给每个特效 E 挂一个触发器脚本,激活或暗藏的时候把子粒子数量 A 传给写在某处逻辑的计数器 C 即可。

另外理论做的时候,还能够给不同的粒子特效加上不同的计算影响系数,这样能够让某些特效(比方多人游戏中玩家角色的技能)呈现的概率更高一些,而其余特效(其余玩家的技能)显示得少一些。

感激 Faust@UWA 问答社区提供了答复

A2:提个思路,对于每一个特效 Prefab,能够离线给这个 Prefab 做一个评分。对于场上存在的特效 Prefab,记录总的特效评分,能够设置一个总的下限评分,超过就不显示。<br/>
这样问题就抛到了离线剖析每个特戏 Prefab 评分上,评分参考维度能够参考:特效粒子发射器数量、特效 overdraw、特效 Batches、特效内存等等。

感激范世青 @UWA 问答社区提供了答复

封面图来源于网络


明天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题兴许都只是冰山一角,咱们早已在 UWA 问答网站上筹备了更多的技术话题等你一起来摸索和分享。欢送酷爱提高的你退出,兴许你的办法恰能解他人的当务之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com
官网技术博客:blog.uwa4d.com
官网问答社区:answer.uwa4d.com
UWA 学堂:edu.uwa4d.com
官网技术 QQ 群:793972859(原群已满员)

正文完
 0