Assetbundle建立與載入

2021-06-28 12:47:13 字數 2171 閱讀 4708

assetbundle建立與載入

unity有兩種動態載入機制:一種是resource.load。一種是assetbundle。assetbundle是unity pro提供的功能,它可以把多個遊戲物件或者資源二進位制檔案封裝到assetbundle中。供載入、解壓使用。  

建立assetbundle

使用方法 buildpipeline.buildassetbundle (object, assets , pathname , options , targetplatform) 

引數1:它只能放乙個物件。

引數2:可以放入乙個陣列物件。

引數3:儲存路徑。

引數4:builderassetbundleoptions

collectdependencies // 包含所有依賴關係。

completeassets//強制包含整個資源

disablewritetypetree//在資源包不包含型別資訊。

deterministicassetbundle//編譯資源包使用乙個雜湊表儲存物件id在資源包中。

uncompressedassetbundle//不壓縮assetbundle,缺省會進行壓縮

引數5:平台

特別注意的是,電腦上和手機上打出來的assetbundle不能混用,不同平台只能用自己的。

載入assetbundle

使用方法:

1)www bundle = new www(path);

2)www bundle = www.loadfromcacheordownload(path, filever);

載入成功後就可以通過資源名使用bundle.assetbundle.load方法獲取資源。

如下圖所示

使用assetbundle.load會從assetbundle的記憶體映象中讀取並建立乙個asset物件,建立的同時會分配相應的記憶體用於反序列化儲存。

記憶體釋放

最後在使用assetbundle時候最好的方式是。

建立時:使用assetbundle.load載入所需的asset,載入完後立即assetbundle.unload(false),釋放assetbundle檔案本身的記憶體映象,但不銷毀載入的asset物件。這樣遍可以釋放一部分記憶體。

釋放時。如果是通過instantiate的物件,用destroy進行銷毀。在合適的地方使用resources.unloadunusedassets,釋放已經沒有引用的asset。unity底層會對物件引用進行計數,如果引用為0.執行unloadunusedassets就可以全部釋放。

使用要點

1、assetbundle會使用lzma壓縮。

3、assetbundle的本地磁碟快取可多達4g,除了web版只能50m。

4、相容性。

5、assetbundle建立方法:

6、bundleoption的區別。

7、assetbundle.createfrommemory()速度慢。

8、assetbundle.createfromfile只能載入非壓縮的assetbundle。

9、loadlevel方法詳解:

10、assetbundle的釋放。

Assetbundle建立與載入

assetbundle建立與載入 unity有兩種動態載入機制 一種是resource.load。一種是assetbundle。assetbundle是unity pro提供的功能,它可以把多個遊戲物件或者資源二進位制檔案封裝到assetbundle中。供載入 解壓使用。建立assetbundle ...

AssetBundle詳解與優化

assetbundle是unity中的一種資源包,這種資源包可以是遊戲內要用到的幾乎所有資源,例如 模型 紋理 預設 場景等大部分檔案更新,並且可以在執行時動態載入。值得注意的是assetbundle是可以多個檔案一起打包,例如將要打包的資源做成預設後再進行打包,這樣可以將預設上面附帶的元件 紋理 ...

AssetBundle詳解與優化

assetbundle是unity中的一種資源包,這種資源包可以是遊戲內要用到的幾乎所有資源,例如 模型 紋理 預設 場景等大部分檔案更新,並且可以在執行時動態載入。值得注意的是assetbundle是可以多個檔案一起打包,例如將要打包的資源做成預設後再進行打包,這樣可以將預設上面附帶的元件 紋理 ...