在Unity中用Ab包加载资源(简单好抄)
第一步创建一个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资源了
大致流程
新年第一篇文章,祝大家新年快乐 !