Unity2019.3之如何生成和加载AssetBundle包

生成AssetBundle

新建一个Cube和Capsule,命名如图

然后生成预制体,新建AssetBundle

Unity2019.3之如何生成和加载AssetBundle包_第1张图片

新建一个Editor文件夹(这个是必须的),然后在目录下创建C#脚本:

using UnityEditor;
using System.IO;

public class CreateAssetbundles:Editor
{

    [MenuItem("AssetsBundle/Build AssetBundles")]
    static void BuildAllAssetBundles()//进行打包
    {
        string dir = "AssetBundles";
        //判断该目录是否存在
        if (Directory.Exists(dir) == false)
        {
            Directory.CreateDirectory(dir);//在工程下创建AssetBundles目录
        }
        //参数一为打包到哪个路径,参数二压缩选项  参数三 平台的目标
        BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);
    }
}

保存之后编辑器菜单栏就回出现对应按钮如下图:

点击之后就在工程目录对应文件下生成AssetBundle文件:

Unity2019.3之如何生成和加载AssetBundle包_第2张图片

加载AssetBundle

在Hierarchy面板新建一个空物体,创建一个加载AssetBundle的脚本,脚本内容如下:

using UnityEngine;

public class LoadFromFileExample : MonoBehaviour
{

    private void Start()
    {
        //通过文件路径加载对应的包
        AssetBundle ab = AssetBundle.LoadFromFile("AssetBundles/scene/wall.unity3d");
        GameObject wallPrefab = ab.LoadAsset("CubeWall");
        //实例化预制体
        Instantiate(wallPrefab);
        //加载所有包,然后遍历实例出来
        //Object[] objs = ab.LoadAllAssets();
        //foreach (var item in objs)
        //{
        //    Instantiate(item);
        //}
    }
}

 

你可能感兴趣的:(Unity)