Unity 构建 AssetBundle 不一致的资源
文章目录
问题
在编辑器下构建 AssetBundle 时报错,但是不影响 AssetBundle 的生成:
|
|
环境
- Unity 2017.4.2f2
- macOS 10.13.6
搜索
搜索后发现很多人遇到相同的报错,但是问题的原因是不同的。
- Error: Inconsistent asset when sorting preload assets: '' fileID: 0 - Unity Forum
- assetBundle build error: Inconsistent asset when sorting preload assets - Unity Answers
- Untiy 打包LightMap 报错:Inconsistent asset when sorting preload assets: '' fileID: 0-CSDN论坛
分析
最近只是修改了部分纹理的导入选项,Texture Type
由 Sprite
修改为 Default
。
使用之前编写的全局搜索工具(Unity 查找资源引用 - 狂飙)查找修改的纹理,发现果然有 UI 使用。然后将 UI 对应的 AssetBundle 删除后重新构建,错误重现。
结论
Unity 中使用 GUID 与 fileID 来唯一的确定一个资源。
Unity 在构建 AssetBundle 时会报告可以通过 GUID 找到主资源,但是通过 fileID 却找不到子资源的错误。这实际上是告诉我们资源已经存在错误了,需要检查修正。