关于android:海外设备上偶现的报错处理方式

40次阅读

共计 2110 个字符,预计需要花费 6 分钟才能阅读完成。

1)海内设施上偶现的报错解决形式
​2)Shader 冗余则 ShaderLab 占用大小问题
3)URP Renderer Feature 实现二次元描边,Cutout 的解决问题
4)Unity 中视频播放的解决方案


这是第 286 篇 UWA 技术常识分享的推送。明天咱们持续为大家精选了若干和开发、优化相干的问题,倡议浏览工夫 10 分钟,认真读完必有播种。

UWA 问答社区:answer.uwa4d.com
UWA QQ 群 2:793972859(原群已满员)

Android

Q:近期我的项目在海内设施上偶现图片中的报错:

A:这个问题曾经确认为 Unity 的 bug,因为最近 Google Play 强制推广 AAB 打包,所以大概率会碰到;个别测试的时候都是用 APK,很容易脱漏这个最初的步骤校验。更新 Unity 至相应版本后即可修复:

可参考:
https://issuetracker.unity3d….

感激 han@UWA 问答社区提供了答复

Shader

Q:Shader 冗余则 ShaderLab 占用也会变大吗?

A:在真机上进行试验,查看 Shader 冗余时 ShaderLab 的内存变动。
以下是 Shader 中有 20 份 Standard 时:

以下是 Shader 中只有 1 份 Standard 时:

因为 Profiler 中无奈看到 ShaderLab 的具体内容,所以谨严地来说,Shader 冗余的确会造成 ShaderLab 内存升高。

感激 Faust@UWA 问答社区提供了答复

Rendering

Q:之前咱们的卡通渲染是在 Shader 里写多个 Pass 来绘制的描边,最近尝试用 SRP Batcher 优化时发现,SRP Batcher 不反对多个 Pass 的 Shader。于是我尝试用 URP Renderer Feature 来渲染所有角色的描边。

实现起来很简略,但有一个问题解决不了,就是 Cutout 的问题。

裙子的下边缘是用贴图的 Alpha 管制的,并不是真正的顶点。以前的 Pass 写在角色渲染的 Shader 里,能够用贴图来管制,但用 Renderer Feature 来解决后,所有角色模型的描边是用的同一个材质,不能再用模型各自的贴图的通道来解决了。显示成果就是 Cutout 的描边局部无奈解决:

边缘比较复杂,然而管制的顶点就只有几个,感觉不太好实现。

当初模型顶点的色彩信息我曾经用过了,RGB 是描边色彩,A 是描边粗细。我能想到的方法是用 A 的一些非凡值来非凡解决一下某些顶点(相当于 Clip 掉一些顶点,但必定没有相干 API),但又感觉仿佛不太可行。不晓得大家有没有遇到过,或者有没有什么好方法呢?

本人尝试了用顶点信息标记点,但有瑕疵,点关联的边会受影响,描边没了:

让美术加了一些点,根本也能解决(其实外边缘还是不会显示全,但曾经看不太进去了):

但这办法还是不好。最好在 Renderer Feature 里能够获取到正在渲染的模型的材质信息。

是否能够把一个多 Pass 的 Shader 里的某个 Pass 弄到独自的 Renderer Feature 里画,而不是从新画一遍?比方画第一遍的时候禁用这个 Pass,Renderer Feature 画的时候再启用它?

A1:自定义一个 LightMode,Render Feature 里设置这个 LightMode,这样材质球上的贴图数据什么就能有。

补充个截图大略是这样的:

对于自定义的 LightMode,Unity 默认疏忽,只有 Render Feature 里手动指定了要画这个 LightMode,Unity 才会去绘制。

感激 jim@UWA 问答社区提供了答复

A2:如下,这样 SRP Batcher 终于能够合批多 Pass 的 Shader 了:

不必禁用失常的渲染。

两个 pass,一个失常的 pass,一个自定义 lightMode 的 pass,lightMode 的 pass 渲染描边用 ScriptableRendererFeature 手动指定渲染自定义的 lightmode。unity 不会去渲染你自定义的 lightMode。

感激题主仇磊 @UWA 问答社区提供了答复

Video

Q:须要在游戏内播放视频,满足一些根本的需要,比方播放近程视频,边下边播,设置视频播放速度,视频进度条,暂停之类的。

目前已知的能够用自带的 Video Player、AVPro 和 Sofdec2 这三款,想问下有没大佬零碎钻研过视频播放这一块的,能够分享一点教训,不胜感激。

A:能够思考集成 https://github.com/bilibili/i… 到 Unity 上进行适配播放:
https://www.gero.pub/2017/10/…

感激 mrz@UWA 问答社区提供了答复

封面图来源于网络


明天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题兴许都只是冰山一角,咱们早已在 UWA 问答网站上筹备了更多的技术话题等你一起来摸索和分享。欢送酷爱提高的你退出,兴许你的办法恰能解他人的当务之急;而他山之“石”,也能攻你之“玉”。

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

正文完
 0