zl程序教程

您现在的位置是:首页 >  其他

当前栏目

unity 《专题系列》资源打包 Asset Bundles 第五节 Asset Bundles 依赖打包和加载

打包资源依赖 系列 加载 Unity 专题 Asset
2023-09-11 14:20:50 时间

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);
        }

    }
}





参考资料:

声明:如无意中涉及侵权到您的内容,请及时沟通修改,谢谢