天天看點

【Unity3D技術文檔翻譯】第1.4篇 AssetBundle 依賴關系AssetBundle 依賴關系

【Unity3D技術文檔翻譯】第1.4篇 AssetBundle 依賴關系AssetBundle 依賴關系

上一章:【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

繼續閱讀