1)资源打包关系依赖树
2)Coroutines产生了大量GC的问题
3)手机端的Soft Shadow如何失效
4)Skybox的环境照明问题
这是第292篇UWA技术常识分享的推送。明天咱们持续为大家精选了若干和开发、优化相干的问题,倡议浏览工夫10分钟,认真读完必有播种。
UWA 问答社区:answer.uwa4d.com
UWA QQ群2:793972859(原群已满员)
AssetBundle
Q:想做包体资源剖析,大家有什么好的树显示工具或者思路举荐吗?有比拟好的开源计划也能够。最简略就像N叉树一样,比方root一个文件名,而后开展整个树结构。
A:Unity的Treeview,以下是资源援用依赖查找工具ReferenceFinder的截图。
我的项目地址为:https://github.com/blueberryz...
感激马三小伙儿@UWA问答社区提供了答复
Script
Q:这种协程产生了大量的GC的问题应该要怎么去定位是在哪里触发的,怎么改呢?
A1:能够试试用这个插件查看一下协程的具体详情,看看能不能定位到问题。外面有个CoroutineTracker专门监控协程的。
https://github.com/GameBuildi...
感激Xuan@UWA问答社区提供了答复
A2:倡议如下:
- 不倡议大量应用协程,会有开销,能够采纳update取代。<br/>
- 如果协程外面产生了GC,能够关注一下是否外面有循环new对象,能够采纳对象池或者用struct。
感激aladdin@UWA问答社区提供了答复
A3:yield return new WaitForSeconds(1f);
像这种写法其实会产生GC,能够思考把new WaitForSeconds(1f)提取到函数外。
感激萧小俊@UWA问答社区提供了答复
Rendering
Q:手机端的Soft Shadow如何失效?
A:能够参考UWA之前的博客文章:
《应用Fast Shadow Receiver优化渲染效率》
《如何实现更实在的软暗影成果》
如果用Unity自带的Soft Shadow,须要留神几个设置项,Graphics Settings外面的Tier2外面必须勾选Cascaded Shadows,这样才会有CollectShadows生成ScreenSpace的Shadowmap。
在Quality Settings外面设置的Cascade Level也会影响暗影的品质,上面两图别离是No Cascades和Four Cascades生成的ScreenSpace Shadowmap的成果。
No Cascades
Four Cascades
感激Xuan@UWA问答社区提供了答复
Rendering
Q:A场景,通过additive的形式加载B场景。2个场景中都没有任何灯光(包含平行光)、Reflection Probe,且Enviroment Reflections的Intensity Mulitiplier为0,纯靠Enviroment Lighting中的Skybox进行照明。
然而SetActive为第二个场景之后,就会发现照明彩色,如右图所示。从新SetActive为第一个场景,环境照明正确,如左图所示。
如果模式不为Skybox而是Color,则没有上述问题。目前打算自建环境光球谐信息,而不应用unity_SHAr相干数据。有什么比拟好的解决方案吗?
A:当把场景B设置为Active的时候,整个Game的Environment的设置就主动切换成场景B的设置了,这时候从FrameDebugger外面能够看到球谐系数变成0了。所以两个模型都黑了。
从Skybox改成Color,起作用的是下图中的3个数值,它们不是0,所以不是黑的。
切换场景A为Active的时候的渲染成果,球谐系数是能够获取到的,所以成果也是失常的,如下图。
所以尝试了一下对场景B进行烘焙,当有了LightingData后,切换到场景B,渲染成果也失常了。变亮了是因为场景B原始设置的Intensity multiplier是5,从FrameDebugger外面看球谐系数不是0了,应该是烘焙后的LihgtingData外面保留了球谐系数。
感激Xuan@UWA问答社区提供了答复
明天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题兴许都只是冰山一角,咱们早已在UWA问答网站上筹备了更多的技术话题等你一起来摸索和分享。欢送酷爱提高的你退出,兴许你的办法恰能解他人的当务之急;而他山之“石”,也能攻你之“玉”。
官网:www.uwa4d.com
官网技术博客:blog.uwa4d.com
官网问答社区:answer.uwa4d.com
UWA学堂:edu.uwa4d.com
官网技术QQ群:793972859(原群已满员)