3

如何判断设备是否支持64位应用 - UWA问答 | 博客 | 游戏及VR应用性能优化记录分享 |...

 1 year ago
source link: https://blog.uwa4d.com/archives/TechSharing_308.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
如何判断设备是否支持64位应用

如何判断设备是否支持64位应用

  • 作者:admin
  • 时间:昨天 11:03
  • 浏览:58 次
  • 分类:厚积薄发

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问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/62f5cfc8343a54268c841b28


Timeline

Q:如下图所示,这个预制体上有带一个Timeline,加载AssetBundle包的时候报错,虽然报错了但是实际游戏中又完全没有影响,什么功能都正常的,请问是为什么?

Unity版本:2020.3.1

1.png

A:以前也遇到过,加入link文件到Assets目录就好了。

2.png

感谢Xuan@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/6306f96c6d82e96d844a98bf


Shader

Q:当前版本下,Unity会在输出AssetBundle或者BuildPlayer等行为下,才会编译对应平台的Shader,并触发编译报错显示。但是这个编译报错的表现很奇怪,一部分会只显示在Shader Inspector上,另一部分虽然显示在Console中,但是仍然会在刷新后被清除。

现在想找到一个方法,能主动触发编译并且将所有相应的错误都收集到Log或者其他形式的文件中。当前考虑过将所有Shader做AssetBundle编译,然后截取ErrorMessage,但还是遇到之前提到的问题,仅仅显示在Shader Inspector的部分。

不知道有没有朋友有解决方案?

A1:用ShaderUtil.GetShaderMessages(shader)这个方法可以拿到Inspector上的错误。

感谢范世青@UWA问答社区提供了回答

A2:同意楼上,亲测有效:

3.png

感谢Xuan@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/63117db152100855894dfe97


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的,但是就是不显示。

从Renderdoc里面看到开了MSAA的时候Clear Attachment的时候会报错,导致后续的UI DrawCall渲染不生效,不开MSAA的时候是不会报错的,报错如下图:

4.png

感谢Xuan@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/62fef7b72abe7a297c96c657

封面图来源于网络


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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK