- 【Unity3D技术文档翻译】第1.7篇 AssetBundle
- 【Unity3D技术文档翻译】第1.2篇 为打包 AssetBu
- 【Unity3D技术文档翻译】第1.5篇 使用 AssetBun
- 【Unity3D技术文档翻译】第2.0篇 材质、着色器与纹理概述
- 【Unity3D技术文档翻译】第3.6.7篇 反射探针概述(R
- 【Unity3D技术文档翻译】第3.6.4篇 烘焙环境遮蔽(Ba
- 【Unity3D技术文档翻译】第3.6.2.4篇 自定义光衰减(
- 【Unity3D技术文档翻译】第3.6.5篇 LOD与烘焙光照贴
- 【Unity3D技术文档翻译】第2.3.3.2篇 反照率颜色与透
- 【Unity3D技术文档翻译】第3.6.7.1篇 反射探针类型

上一章:【Unity3D技术文档翻译】第1.3篇 创建 AssetBundles
本章原文所在章节:【Unity Manual】→【Working in Unity】→【Advanced Development】→【AssetBundles】→【AssetBundle Dependencies】
AssetBundle 依赖关系
如果一个或者多个 UnityEngine.Objects 引用了其他 AssetBundle 中的 UnityEngine.Object,那么 AssetBundle 之间就产生的依赖关系。相反,如果 UnityEngine.ObjectA 所引用的UnityEngine.ObjectB 不是其他 AssetBundle 中的,那么依赖就不会产生。
假若这样(指的是前面两个例子的后者,既不产生依赖的情况),被依赖对象(UnityEngine.ObjectB)将被拷贝进你创建的 AssetBundle(指包含 UnityEngine.ObjectA 的 AssetBundle)。
更进一步,如果有多个对象(UnityEngine.ObjectA1、UnityEngine.ObjectA2、UnityEngine.ObjectA3......)引用了同一个被依赖对象(UnityEngine.ObjectB),那么被依赖对象将被拷贝多份,打包进各个对象各自的 AssetBundle。
如果一个 AssetBundle 存在依赖性,那么要注意的是,那些包含了被依赖对象的 AssetBundles,需要在你想要实例化的对象的加载之前加载。Unity 不会自动帮你加载这些依赖。
想想看下面的例子, Bundle1 中的一个材质(Material)引用了 Bundle2 中的一个纹理(Texture):
在这个例子中,在从 Bundle1 中加载材质前,你需要先将 Bundle2 加载到内存中。你按照什么顺序加载 Bundle1 和 Bundle2 并不重要,重要的是,想从 Bundle1 中加载材质前,你需要先加载 Bundle2。
在下一章节中,我们将讨论如何使用前面章节提到的 AssetBundleManifest,在运行时确定并加载依赖(AssetBundle)。
如果本文对你有帮助的话,点个赞或者评论一下吧!
网友评论