1)AB打包有的Shader没有触发IPreprocessShaders的回调
2)场景中有多灯光导致粒子系统大量不合批
3)获取Android和iOS的设施惟一标识符
4)应用了Variant的AB包里的资源会判断为冗余
这是第302篇UWA技术常识分享的推送。明天咱们持续为大家精选了若干和开发、优化相干的问题,倡议浏览工夫10分钟,认真读完必有播种。
UWA 问答社区:answer.uwa4d.com
UWA QQ群2:793972859(原群已满员)
Shader
Q:在Addressable外面打包AB,其中的Shader打包并没有触发IPreprocessShaders外面的回调,请问是什么起因?
A:增量打包时曾经打包的Shader不会触发该回调,只有新打包的Shader才会。不论是Addressable打包或者是其余的打包形式都相似。如果须要通过IPreprocessShaders来进行Shader变体剔除,那么还是倡议从新全量打包一次,或者打包时设置ForceRebuild。
感激宗卉轩@UWA问答社区提供了答复
Rendering
Q:场景中有多灯光,导致了粒子系统大量的不合批,该如何优化?
A:测试了一下,在2019.4.14版本中,如果多灯光“影响”到了粒子系统,的确会导致本该合批的ParticleSystem不能合批,尽管自身渲染的时候不会对ParticleSystem产生理论影响。在2020.3.17和2021.3.4版本中都没有这个问题。对于不是2020及以上版本的Unity,须要调整一下Light的CullingMask,不让其对ParticleSystem所在的Layer产生影响,就能够合批了。比方粒子特效在TransparentFX层,光源的CullingMask不包含这一个Layer即可。
感激Xuan@UWA问答社区提供了答复
Android
Q:求教获取Android和iOS的设施惟一标识符的形式。
A1:Android有获取IMEI的接口。如果iOS 15当前的设施设置不追踪,目前是无奈获取设施惟一ID的,得从其余相似热云插件的形式获取。
感激Knight-132872@UWA问答社区提供了答复
A2:Android是应用OAID或者UUID。iOS应用IDFA。刷机或者复原出厂设置都会刷新ID,一些硬件档次的设施ID,在iOS 5.0以上不被容许获取,Android高版本中也不举荐应用。
感激不小人@UWA问答社区提供了答复
A3:补充楼上的计划,有上面两种形式:
- 原生条件下,Android能够应用UUID的形式,iOS应用楼上说的IDFA,然而须要本人做兼容适配。
- 能够借助SDK,获取SDK的OpenID。这个是牢靠和稳固的,长处是不须要兼容平台,然而须要接入SDK。
感激廖武兴@UWA问答社区提供了答复
AssetBundle
Q:应用UWA AssetBundle检测服务,发现一些应用了Variant的AB包里的资源会被断定为冗余,是Bug吗?
A:应用Variant形式打包的AB中,资源名字完全相同的资源会生成完全一致的Guid,以实现它作为资源变体的性能,在加载的时候能够按需替换,而个别会认为Guid雷同的资源就是同一份资源,所以有可能是这个起因导致误判成冗余。能够改下资源名字或者不必Variant的形式打包试试。
感激宗卉轩@UWA问答社区提供了答复
封面图来源于网络
明天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题兴许都只是冰山一角,咱们早已在UWA问答网站上筹备了更多的技术话题等你一起来摸索和分享。欢送酷爱提高的你退出,兴许你的办法恰能解他人的当务之急;而他山之“石”,也能攻你之“玉”。
官网:www.uwa4d.com
官网技术博客:blog.uwa4d.com
官网问答社区:answer.uwa4d.com
UWA学堂:edu.uwa4d.com
官网技术QQ群:793972859(原群已满员)