找回密码
 立即注册
查看: 140|回复: 0

RenderTexture导致UI花屏的问题

[复制链接]
发表于 2024-9-13 09:14 | 显示全部楼层 |阅读模式
1)RenderTexture导致UI花屏的问题
​2)Unity 2019 ToLua导出ParticleSystem异常
3)UWA GOT在安卓10上的截图问题
4)Addressables.CheckForCatalogUpdates和Addressables.GetDownloadSizeAsync的问题
5)用RenderDoc抓不到华为手机的帧
<hr/>这是第241篇UWA技术常识分享的推送。今天我们继续为大师精选了若干和开发、优化相关的问题,建议阅读时间10分钟,当真读完必有收获。
UWA 问答社区:answer.uwa4d.com
UWA QQ群2:793972859(原群已满员)
Rendering

Q:UI花屏该怎么查?呈现绿色,也有紫色在闪烁。如下图所示,黑色布景还有紫色在闪烁,截图截不了。只有在真机下才呈现,模拟器上是没有的。
这黑色布景是一个RenderTexture的Blur效果,SRP实现的,使用的设备是小米K30。


A1:建议使用FrameDebugger定位一下是哪些Shader执行呈现的问题,呈现问题的很有可能是该Shader的衬着执行挨次有问题,看看RenderPassEvent设置是否正确。
感激李星@UWA问答社区提供了回答
A2:问题查出来了,用了RenderTexture.GetTemporary,depthBuffer参数传了16导致的,0不会。
感激题主NG週@UWA问答社区提供了回答,欢迎大师转至社区交流:
https://answer.uwa4d.com/question/6039ed3fcfa35d5b5366981e
<hr/>Lua

Q:Unity 2019 Tolua导出ParticleSystem异常,如图:


由于这里Type为null,导致ParticleSystem无法导出。
A:用1.0.8.595措置Unity运行库[out]标识表记标帜非out参数问题,去官网更新一下。
https://github.com/topameng/tolua/commits
topameng committed on 19 Jun 2020
感激南神@UWA问答社区提供了回答,欢迎大师转至社区交流:
https://answer.uwa4d.com/question/6034a2d9cfa35d5b53669654
<hr/>Android

Q:UWA在安卓10上不能正常使用截图功能,已经按照文档配置了Manifest,如下图:

A:这个解决方案是针对UWA GOT Online打包的Write权限的问题的,并不能解决截图的问题。目前在安卓10系统的真机上,只有APK设置的TargetSDKVersion<=28时才能截图。TargetSDKVersion设置为<=28(28为安卓9),出的APK仿照照旧能在安卓10手机上跑的。
感激Xuan@UWA问答社区提供了回答,欢迎大师转至社区交流:
https://answer.uwa4d.com/question/603f384dcfa35d5b5366987a
<hr/>Addressable

Q:请问大佬,为什么Addressables.CheckForCatalogUpdates和 Addressables.GetDownloadSizeAsync永远返回AsyncOperationStatus.Succeeded?
我http处事器都没开,它还是返回成功。本来是我是通过Addressables.CheckForCatalogUpdates和Addressables.GetDownloadSizeAsync来判断是否需要更新资源,但是http处事器都没开,依然返回成功,检测为不需要更新了。请问如何措置?
Addressable版本1.16.15
Unity 2018.4.14f
A1:翻了代码,最后发现CheckCatalogsOperation中的Execute方式里直接 Complete(result, true, null);这样返回的,所以永远都是成功的。
感激题主wu@UWA问答社区提供了回答
A2:Addressables.CheckForCatalogUpdates是通过返回一个“catalog ids”的列表来判断是否有更新的,就判断这个列表有没有就可以了。

处事器没开自然是不需要更新,也没法更新。GetDownloadSizeAsync则是通过最新的Catalog内AssetBundle的hash和已经下载的AssetBundle的hash对比来判断是否需要下载,需要下载则把Size累计上。既然catalog没有被更新掉,自然也就没它什么事情了。
怎么措置就看业务层想怎么设计了。比如:

更新处事器开不开都但愿进游戏,那么就按此刻CheckForCatalogUpdates返回列表为空就当成不需要更新,继续跑就行了。

如果必需在更新处事在线的情况下走,那么就由外部法式来判断处事器是否活着,然后再进到游戏更新逻辑。
感激黄程@UWA问答社区提供了回答,欢迎大师转至社区交流:
https://answer.uwa4d.com/question/600583d510a17c6c2b09db4b
<hr/>Rendering

Q:比来遇到衬着深度不正确的问题。在骁龙的机型上衬着出来是错的(和编纂器纷歧致),在华为的机型和iOS上衬着出来是正确的。于是想用RenderDoc抓帧对比下两边的区别,看看到底哪一步纷歧样。
成果发现同样的包,在骁龙的机型上可以抓到帧(大约几十MB数据的.rdc文件),在华为的机型上抓出来是黑的(只有3MB摆布数据的.rdc文件)。
去RenderDoc的Issue里翻了下,找到一条接近的,看作者的意思概略就是这问题没救。请问有没有人遇到过类似的问题,或者给一些建议。
https://github.com/baldurk/renderdoc/issues/2106
测试环境:
Unity 2018.4/Unity 2019.4
OpenGL ES3(如果用Vulkan,在华为手机上也可以正常抓帧)
1加手机抓帧成果:


华为手机抓帧成果:


A:后来发现某个用Mali Gpu的OPPO手机可以抓帧,就没用华为手机继续查这问题。
不外查资料过程中发现华为有一个本身改版的RenderDoc,可以用来在华为手机上抓帧:
https://developer.huawei.com/consumer/cn/forum/topic/0203337632069160300
感激题主deviljz@UWA问答社区提供了回答,欢迎大师转至社区交流:
https://answer.uwa4d.com/question/6030b41dcfa35d5b53669593
<hr/>今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上筹备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你插手,也许你的方式恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。
官网:www.uwa4d.com
官方技术博客:blog.uwa4d.com
官方问答社区:answer.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859(原群已满员)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-19 09:37 , Processed in 0.098553 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表