问题背景
美术修改了spine模型贴图,需要开启Straight Alpha Texture

image.png
编辑器里表现正常,但是安卓包没有效果。很明显是shader打包问题。查看project setting里,跟踪到的shader变体里确实没有目标shader。

image.png

image.png
解决过程
一
删掉打包出来的shader ab包,重新构建,问题依旧
二
删除Library/ShaderCache/shader里的相关缓存,重新构建,问题依旧
三
打开构建机上的编辑器,选中该材质球,再重新检查跟踪到的shader变体,把.shadervariants文件上传,重新构建,问题依旧

image.png
四
打个新apk,问题依旧
五
由于关于Straight Alpha Texture关键字的代码写在.cginc中,在其中添加一句注释,重新构建,问题依旧
六
修改.cginc,去除关键字判断逻辑,直接写死对应逻辑,重新构建,问题解决
解决方法
通过上述测试,说明实际问题就是关键字没有生效,应该还是相应的shader变体没有打包成功。
最终:
把.shadervariants和shader打包到一起解决问题。两点:
- .shadervariants要打进ab包,只是丢到工程里不打包是没效的
- .shadervariants和shader一起打包
搞定!