array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 AssetBundle包加载的场景会变暗 - 爱码网

1)AssetBundle包加载的场景会变暗
2)关于URP的合批问题
3)两次生成的AssetBundle包不一致
4)如何彻底卸载AssetBundle占用的内存
5)renderFrameInterval >1 导致半透明错误的额外叠加


这是第201篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。

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

AssetBundle

Q:我发现在项目工程下加载场景AssetBundle包会变暗,但是在打包工程和空工程下加载是正常的,不知道有没有人遇到过这个问题呢?

AssetBundle包加载的场景会变暗

 

AssetBundle包加载的场景会变暗

 

AssetBundle包加载的场景会变暗

 

AssetBundle包加载的场景会变暗

 

AssetBundle包加载的场景会变暗

 

A:原因是ColorSpace不一致,我突然想到曾经看到过Gamma和Liner不一致的问题,试了下发现能够解决这里的问题,所以只要改成Gamma就行了。

感谢题主[email protected]问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/5e9e76e1979400061e545049


Rendering

Q:这几天在尝试使用URP,使用的渲染流程是3个Pass,第一个使用URP默认Pass渲染角色,第二个通过Renderer Features进行Stencil的Mask,第三个Pass同样使用Renderer Features进行Outline勾边。

第一个Pass因为使用ShaderGraph做的,因此是URP Batcher Compatible。第二第三个自己写的Shader,开始是不兼容的。但是目前已经改成了URP Batcher Compatible。

所有的材质都开启了Instance。首先从最后渲染效果达到目标,没有问题。但是观察合批数据,觉得有点疑惑:

Statistics内显示Batches有30个,Saved by batching:-27

AssetBundle包加载的场景会变暗

但是从Frame Debugger观察,角色渲染的3个Pass都进行了SRP Batch,一共16个批次。

AssetBundle包加载的场景会变暗

而Profile里面显示的和Statistics基本一致。

AssetBundle包加载的场景会变暗

这儿的差异要怎么理解呢?

A1:看了以下链接,基本已经理解这儿的差异了。实际SRP的Batch并不是真的去减少Draw Call,所以数据有差异的。
https://blogs.unity3d.com/2019/02/28/srp-batcher-speed-up-your-rendering/
感谢题主黄程@UWA问答社区提供了回答

A2:这个现象应该还是属于Profiler和FrameDebuger的显示不统一的问题。
像Static Batching实际上也是如题主所说“并不是真的去减少Draw Call”,即GL层的glDraw数变化不大,但Profiler中的Batch数是大幅下降的;而SRP的Batch功能还比较新,所以估计还没把SRP的Batch和Profiler中的Batch统一起来。

该回答由UWA提供,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/5ea157f94d93790618e0eba2


AssetBundle

Q:在对Prefab进行打包时发现,前后两次打包,Prefab和所引用的资源都没有变化,生成的AssetBundle包中间却有几个数据不一致,导致计算出的MD5值不一样。

对比Manifest文件,确认Dependencies所依赖的AssetBundle包没有变化, 只是顺序发生了变化。所以是什么原因导致两次出包会有差异呢?

AssetBundle包加载的场景会变暗

 

AssetBundle包加载的场景会变暗

 

A: 这是Unity引擎自己的特性,从4.x版本到现在一直都存在这种情况。所以,非常建议使用引擎自己提供的Hash值代替MD5来做为AssetBundle是否改变的判断。

该回答由UWA提供,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/5e902ead8cabe84a011afc72


AssetBundle

Q:我使用DownloadHandlerAssetBundle.GetContent()获取AssetBundle,会增加内存,但是使用assetbundle.Unload(true),好像并不能彻底卸载内存,或许已经彻底卸载了AssetBundle占用的内存,但是还有一部分没有被卸载。是不是DownloadHandlerAssetBundle.GetContent()这个函数的原因呢?

A: 使用Unity 2018.4.14f1打包exe测试,和这个问题是一样的。

如果aa依赖于bb,先加载bb再加载aa,可以彻底卸载;先加载aa再加载bb,就无法完全卸载;只加载aa也卸载不彻底。另外,前面的测试结果与卸载顺序无关。

感谢[email protected]问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/5e99500ecd6a9b49fb4a4711


Rendering

Q:关于OnDemandRendering.renderFrameInterval的疑问。

AssetBundle包加载的场景会变暗

在一些静态UI的时候把OnDemandRendering.renderFrameInterval设置为3,表示渲染频率降为1/3。假设正常是30fps,那么渲染帧率就是10fps。但是在iOS手机上测试后发现一个问题,画面表现为透明的UI在一层层地叠加。

AssetBundle包加载的场景会变暗

可以看到,箭头的阴影很深,而实际上是很淡的一层阴影。由于渲染帧率降为30fps的1/3,所以每10帧clear一下,阴影并没有叠得很过分。如果把渲染帧设得更低,会看到阴影一层层叠加。

AssetBundle包加载的场景会变暗

请问下,这是Bug吗?还是有另外的设置?

A: 应该是Bug,Issue ID:1214921, Fixed in 2020.2.0a6,可查看Bug提交

感谢[email protected]问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/5ea10d084d93790618e0eba0


今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

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

相关文章: