打包:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.IO;
public class CreateAssetBundle{
[MenuItem("Tools/CreateAssetBundle(对所有ab资源进行打包)")]
static void CreateAB()
{
string savePath = Application.dataPath + "/../MyAssetBundles/";
if (!Directory.Exists(savePath))
{
Directory.CreateDirectory(savePath);
}
Debug.Log("创建ab资源, CreateAssetBundle");
BuildPipeline.BuildAssetBundles(savePath, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);
Application.OpenURL(savePath);
}
加载ab场景:
场景构建AB包的方法和资源类似:从AB中加载场景是不用把场景放到scene in Build中的,加载后读取即可。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using UnityEngine.SceneManagement;
public class LoadABScene : MonoBehaviour {
void Start () {
string path = Path.Combine (Application.streamingAssetsPath, "scene-ab.unity3d");
//加载场景Bundle
AssetBundle.LoadFromFile (path);
SceneManager.LoadScene ("scene-ab");
}
}