在Editor文件下创建一个打包脚本,如下:
using System.IO;
using UnityEditor;
public class BuildBundlesTest {
[MenuItem("Window/BuildBundles")]
static void BuildBundles()
{
string assetBundlesLibrary = "Assets/AssetsBundles";
if(!Directory.Exists(assetBundlesLibrary))
{
Directory.CreateDirectory(assetBundlesLibrary);
}
BuildPipeline.BuildAssetBundles(assetBundlesLibrary, BuildAssetBundleOptions.None,
BuildTarget.StandaloneWindows64);
}
}
制作一个预知物,将预知物的Bundle名字改一下,后缀改为unity3d;
然后选中这个预知物点击打包,打包好的AB会在上面创建的文件夹中。
打包流程已经完成,接下来看加载和实例化。比较简单~
加载的话写一个加载脚本挂在场景中任意物体上就OK,脚本LoadBundles:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LoadBundles : MonoBehaviour
{
// Use this for initialization
void Start()
{
//加载AB包
AssetBundle ab = AssetBundle.LoadFromFile("AssetsBundles/scene/cube.unity3d");
//LoadAsset中参数为导出前Prefab名字
GameObject cube = ab.LoadAsset("Cube") as GameObject;
Instantiate(cube);
}
}
简单的AssetBundle打包,解包完成。