1)如何判断设施是否反对 64 位利用
2)真机加载 Timeline 报错
3)被动触发 Shader 编译报错
4)Lens Flare(SRP)导致摄像机重叠后显示 UGUI 生效
这是第 308 篇 UWA 技术常识分享的推送。明天咱们持续为大家精选了若干和开发、优化相干的问题,倡议浏览工夫 10 分钟,认真读完必有播种。
UWA 问答社区:answer.uwa4d.com
UWA QQ 群 2:793972859(原群已满员)
Script
Q:新的处理器对 32 位利用反对将越来越少,思考出包的时候只出 64 位的包,想提前统计下。当初我用的办法是 System.Environment.Is64BitProcess 来判断的,后果可能不精确,例如 Kirin 980 取到的后果就是 false。
请问有没有其余路径或者接口能够获取呢?
A:参考以下代码:
if(IntPtr.Size == 8) //64 else if if(IntPtr.Size == 4) //32
感激萧小俊 @UWA 问答社区提供了答复
Timeline
Q:如下图所示,这个预制体上有带一个 Timeline,加载 AssetBundle 包的时候报错,尽管报错了然而理论游戏中又齐全没有影响,什么性能都失常的,请问是为什么?
Unity 版本:2020.3.1
A:以前也遇到过,退出 link 文件到 Assets 目录就好了。
感激 Xuan@UWA 问答社区提供了答复
Shader
Q:以后版本下,Unity 会在输入 AssetBundle 或者 BuildPlayer 等行为下,才会编译对应平台的 Shader,并触发编译报错显示。然而这个编译报错的体现很奇怪,一部分会只显示在 Shader Inspector 上,另一部分尽管显示在 Console 中,然而依然会在刷新后被革除。
当初想找到一个办法,能被动触发编译并且将所有相应的谬误都收集到 Log 或者其余模式的文件中。以后思考过将所有 Shader 做 AssetBundle 编译,而后截取 ErrorMessage,但还是遇到之前提到的问题,仅仅显示在 Shader Inspector 的局部。
不晓得有没有敌人有解决方案?
A1:用 ShaderUtil.GetShaderMessages(shader) 这个办法能够拿到 Inspector 上的谬误。
感激范世青 @UWA 问答社区提供了答复
A2:批准楼上,亲测无效:
感激 Xuan@UWA 问答社区提供了答复
Rendering
Q:Lens Flare(SRP)导致摄像机重叠后显示 UGUI 生效,Unity 2021.3.8 应用新个性 URP 管线下的 Lens Flare。
因为咱们的是太空我的项目,Lens Flare 对成果晋升很大,所以降级到 2021 应用最新的炫光性能。然而加了后发现 FGUI 的重叠摄像机画面无奈显示了,不单单是 FGUI,UGUI 应用独自摄像机渲染模式也是不能显示。
工程链接见原问答。
A:测试了一下,如果是敞开了 MSAA,UGUI 就能够失常显示了,但奇怪的是 FrameDebugger 外面明明有 UI DrawCall 的,然而就是不显示。<br/>
从 Renderdoc 外面看到开了 MSAA 的时候 Clear Attachment 的时候会报错,导致后续的 UI DrawCall 渲染不失效,不开 MSAA 的时候是不会报错的,报错如下图:
感激 Xuan@UWA 问答社区提供了答复
封面图来源于网络
明天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题兴许都只是冰山一角,咱们早已在 UWA 问答网站上筹备了更多的技术话题等你一起来摸索和分享。欢送酷爱提高的你退出,兴许你的办法恰能解他人的当务之急;而他山之“石”,也能攻你之“玉”。
官网:www.uwa4d.com
官网技术博客:blog.uwa4d.com
官网问答社区:answer.uwa4d.com
UWA 学堂:edu.uwa4d.com
官网技术 QQ 群:793972859(原群已满员)