问题
- 只含一个场景的AssetBundle体积比预想得要大,但场景里所有的GameObject都在其它的AssetBundle中
- Manifest文件看上去并没有问题
原因
只含一个场景的AssetBundle其实也包含了默认着色器。Editor.log里显示为“unity_builtin_extra”。
解决方案
- 新建一个标准的表面着色器,将其添加到另一个AssetBundle里并重新生成AssetBundle
- 从http://unity3d.com/get-unity下载Unity内置着色器并将导入项目中。将着色器脚本的第一行Shader "Skybox/Cubemap" 改为Shader "AssetBundles/Skybox/Cubemap"。将它们全部添加到一个AssetBundle里并将指定给对象。
更多信息
http://forum.unity3d.com/threads/custom-shaders-and-asset-bundles-on-ios.144014/
适用于Unity 5.0及以上版本。