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(原群已满员)