什麼是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