unity 《专题系列》资源打包 Asset Bundles
第五节 Asset Bundles 依赖打包和加载
一、依赖打包是什么,为什么要依赖打包
1、依赖打包,即是多个物体拥有相同的部分抽出来单独打包,这些多个物体就和单独打包出来的资源形成了依赖关系,叫做依赖打包,如下图
2、为什么要依赖打包,根据上图,我们就可以清楚看出,把共同部分提出来单独打包,可以节省资源占用,省空间,一定程度提高效率等好处,如下图
二、加载依赖包的方法
1、加载Sphere时,不加载依赖包,就会出现丢资源的紫色显示,如下图
2、加载Sphere时,一起加载依赖资源的方法(依赖资源在前加载,或后加载都没有关系,只要记得加载,系统就会自动找到对应依赖资源),如下图
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using UnityEngine.Networking;
public class LoadAssetBundle : MonoBehaviour {
// Use this for initialization
void Start () {
//2.2 LoadFromFile 方法加载
//AssetBundle的存放路径
string path = "Assets/AssetBundles/sphereab.unityab";
AssetBundle ab = AssetBundle.LoadFromFile(path);
//取得所需要的资源
GameObject go = ab.LoadAsset<GameObject>("Sphere");
//加载生成到场景中
Instantiate(go);
//加载mainfest文件
AssetBundle manifestAB = AssetBundle.LoadFromFile("Assets/AssetBundles/AssetBundles");
AssetBundleManifest manifest = manifestAB.LoadAsset<AssetBundleManifest>("AssetBundleManifest");
foreach (string name in manifest.GetAllDependencies("sphereab.unityab"))
{
//打印相关资源的信息
print(name);
//加载对应依赖资源
AssetBundle.LoadFromFile("Assets/AssetBundles/"+name);
}
}
}