上一章:【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)。
如果本文對你有幫助的話,點個贊或者評論一下吧!
下一章:【Unity3D技術文檔翻譯】第1.5篇 本地使用 AssetBundles