Unity AssetsBundle

什麼是AssetsBundle

  • AssetBundle(簡稱AB包)是一個資源壓縮包,包含模型、貼圖、預製體、聲音、甚至整個場景,可以在遊戲運行的時候被加載;
  • AssetBundle自身保存着互相的依賴關係;
  • 壓縮包可以使用LZMA和LZ4壓縮算法,減少包大小,更快的進行網絡傳輸;
  • 把一些可以下載內容放在AssetBundle裏面,可以減少安裝包的大小;

加載方式

  • AssetBundle.LoadFromFile 從本地加載
  • AssetBundle.LoadFromMemory 從內存加載
  • WWW.LoadFromCacheOrDownload 下載後放在緩存中備用(該方法逐漸被棄用)
  • UnityWebRequest 從服務器下載

從AB中加載資源:

  • AssetBundle.LoadAsset(assetName)
  • AssetBundle.LoadAllAssets() 加載AB包中所有的對象,不包含依賴的包
  • AssetBundle.LoadAssetAsync() 異步加載,加載較大資源的時候
  • AssetBundle.LoadAllAssetsAsync() 異步加載全部資源
  • AssetBundle.LoadAssetWithSubAssets 加載資源及其子資源

打包

需要在Assets文件夾中創建“AssetBundles”文件夾

using UnityEditor;

public class CreateAssetBundles
{
[MenuItem (“Assets/Build AssetBundles”)]
static void BuildAllAssetBundles ()
{
BuildPipeline.BuildAssetBundles (“Assets/AssetBundles”, BuildAssetBundleOptions.None, BuildTarget.StandaloneOSXUniversal);
}
}

參考

https://blog.csdn.net/qq_35361471/article/details/82854560
https://blog.csdn.net/u010989951/article/details/68925451

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章