Unity5.5.0f3 AssetBundle打包Shader问题

来源:互联网 发布:淘宝流量一下子跌下来 编辑:程序博客网 时间:2024/05/16 05:00

问题一、从AssetBundle中读取的shader丢失(显示粉红色)?

  shader分为两种,一种是unity内建shader,在unity的安装目录;另一种是自定义的shader,在unity项目中。

对于内建shader,如果AssetBundle中的模型有用到,则需要在 Always Included Shaders 列表(Edit->Project Settings -> Graphics ->Always Included Shaders)中添加进去(对于Standard这样的shader,据说添加进去后会自动将它的一系列变体加入,这里并没有测试过。),例如:


对于自定义的 Shader 在打包 AssetBundle 的时候,如果有物体用到,这个 Shader 就会自动打包进去,无需单独处理。

如果打包AssetBundle工程和读取工程不是同一个,那么要确保两点:

1. 保持上面提到的 Always Included Shaders 列表一致,否则可能出现某些shader无法找到的问题;

2. 对应编译平台中 Player Settings 的 Graphics APIs 必须保持一致,OpenGLES2或者OpenGLES3或者都有,不能多也不能少。例如:



问题二、在 Unity Editor 中显示的 AssetBundle 中的 Shader 异常?

  Shader 并没有出现粉红色,而是很奇怪的问题,可能双面可见的透明效果变成了单面半透明。这个是 Unity 自身的原因,在 Android 或者 iPhone 真机上运行是正常的。


参考文章:

Unity5.x shader打包AssetBundle总结

Shaders Are Pink When Loaded From An AssetBundle

Unity 编辑器环境下不能正确加载Android Assetbundle 中的 Shader 解决方法

0 0
原创粉丝点击