在Unity中用Ab包加载资源(简单好抄)

发布于:2025-02-11 ⋅ 阅读:(85) ⋅ 点赞:(0)

第一步创建一个Editor文件夹

第二步编写BuildAb(这个脚本一点要放在Editor中因为这是一个编辑器脚本,放在其他地方可能会报错)

using System.IO;
using UnityEditor;
using UnityEngine;

public class BuildAb : MonoBehaviour
{
    // 在Unity编辑器的菜单栏中添加一个菜单项
    [MenuItem("Assets/Build AssetBundles")]
    static void BuildAllAssetBundles()
    {
        // 定义Ab包的输出目录
        string assetBundleDirectory = "Assets/AssetBundles";
        // 检查目录是否存在,如果不存在则创建该目录
        if (!Directory.Exists(assetBundleDirectory))
        {
            Directory.CreateDirectory(assetBundleDirectory);
        }
        // 使用BuildPipeline构建AssetBundles
        // 参数1:输出目录
        // 参数2:构建选项,这里使用默认选项(None)
        // 参数3:目标平台,这里选择Windows平台
        BuildPipeline.BuildAssetBundles(assetBundleDirectory, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);
    }
}

把脚本编译完成后就能在菜单中看到我们刚刚添加的选项了

第三步创建一个资源文件夹再创建一个预制体放进去

第4步给你需要打包的Ab包取名字(这里取的是abtext)

第五步打包Ab资源

打包完如果出现了这个文件夹那就说明打包成功了

第六步编写读写资源脚本ReadAbBag

using System.IO;
using UnityEngine;

public class ReadAbBag : MonoBehaviour
{
    void Start()
    {
        string path = Path.Combine("Assets/AssetBundles", "abtext");//ab包路径
        AssetBundle assetBundle = AssetBundle.LoadFromFile(path);//加载AssetBundle
        //读取需要的资源
        GameObject obj = Instantiate(assetBundle.LoadAsset<GameObject>("block"),gameObject.transform);//加载prefab
    }
}

第七步创建一个空对象并将刚刚编写的脚本拖上去

 

运行游戏就能读取到刚刚打包的AB资源了

大致流程

新年第一篇文章,祝大家新年快乐 !


网站公告

今日签到

点亮在社区的每一天
去签到