【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是可以多個檔案一起打包,例如將要打包的資源做成預設後再進行打包,這樣可以將預設上面附帶的元件 紋理 ...