1)URP 管线下如何查看 Overdraw
2)Lua 部分函数调用回收机制
3)AssetBundle 如何应用二次压缩算法缩减包体
4)URP 的三角形面片数统计不精确
这是第 262 篇 UWA 技术常识分享的推送。明天咱们持续为大家精选了若干和开发、优化相干的问题,倡议浏览工夫 10 分钟,认真读完必有播种。
UWA 问答社区:answer.uwa4d.com
UWA QQ 群 2:793972859(原群已满员)
Rendering
Q:Unity 内置管线里自带了 Overdraw 模式,然而在 URP 外面看不到 Overdraw 模式,请问有什么不便的形式来实现吗?
非 URP 如下图:
A:举荐参考这个做法:https://github.com/ina-amagam…
感激 Xuan@UWA 问答社区提供了答复 </font>
Lua
Q:在用插件 LuaProfiler 检测时发现,每次调用这个函数,其内存都会减少,不会缩小。是我测试的问题吗?还是部分函数申请的作用域不会像局部变量一样随着函数调用完结而回收?
比方这样一个函数:
function MainWindow:RefreshAll()
local function func()
end
end
A:Lua 应用 GC 形式是增量标记法,并不会间接回收内存。回收的机会和 collectgarbage(“setpause”)、collectgarbage(“setstepmul”) 这 2 个参数无关。
满足这 2 个参数的时候才会触发 Stop the world 而后进行 GC,当然也能够间接运行 collectgarbage(“collect”) 来进行强制 GC。
感激萧小俊 @UWA 问答社区提供了答复 </font>
AssetBundle
Q:AssetBundle 太大,缩减包体应用什么二次压缩算法比拟好?C# 版 7 -Zip LZMA 会不会冲高托管内存,请做过的大佬帮忙解答下,谢谢。
A1:二次压缩的做法并不常见,因为一个自身就是压缩文件的二次压缩,所能带来的体积放大性价比并不高。同时,还要再搭上一次解压的工夫,如果你是在 C# 中进行解压,很有可能会带来较高的堆内存调配,所以这种做法,绝大部分场景下都是得失相当的。
该答复由 UWA 提供
A2:不是很举荐去做解压,工夫老本和空间老本都比拟高。倡议检查一下资源的依赖关系,能够用 UWA 的在线 AssetBundle 检测服务剖析一下资源有没有冗余,去掉冗余资源应该会小很多。而后图片的压缩格局肯定要选“压缩率越高”,最初图片打包 AssetBundle 的时候就会越小。
感激萧小俊 @UWA 问答社区提供了答复
Editor
Q:大家有没有遇到过 URP 下 Editor 外面 Statistics 面板的三角形统计不精确的状况?
A:这个是 Unity 的 Bug,测试了 Unity 2019.4.10 下的 URP,Editor 下的 Statistics 外面的统计是不对的,须要把 Graphics API 从 Direct3D 11 切换到其余的平台,如 Vulkan、OpenGLCore 或者 DirectD12,这样统计的三角形数量是精确的,同时也在 Unity 2020.3.3f1 版本中做了测试,Direct3D 11 平台下也能精确统计三角形面片了。
感激羽飞 @UWA 问答社区提供了答复
20210809
更多精彩问题等你答复~
1.Vulkan 与 OpenGL 的抉择是否会对内存大小产生影响
2.Unity 层通明 Render over native UI
3. 如何实现 AAB 包的增量更新
封面图来源于:URP Geometry Shader Example
URP 中的几何着色器的示例。
明天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题兴许都只是冰山一角,咱们早已在 UWA 问答网站上筹备了更多的技术话题等你一起来摸索和分享。欢送酷爱提高的你退出,兴许你的办法恰能解他人的当务之急;而他山之“石”,也能攻你之“玉”。
官网:www.uwa4d.com
官网技术博客:blog.uwa4d.com
官网问答社区:answer.uwa4d.com
UWA 学堂:edu.uwa4d.com
官网技术 QQ 群:793972859(原群已满员)