1、该文件目录 Asset/Editor
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;
public class CreatorAssetBundle {
[MenuItem("AssetBundle/Window")]
static void CreatorAssetBundleFunc()
{
string dir = "AssetBundleWindow";
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
// BuildTarget.Android 需要安装unity abdroid环境
BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);
}
}
2、远程加载AsstBunlde
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class AssetBundleTest : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
StartCoroutine(LoadAssetBundleRequst());
}
// 本地加载
private void LoadAssetBundle()
{
AssetBundle ab = AssetBundle.LoadFromFile("D:/Unity/Project/TestProjectI/AssetBundle/cube");
GameObject gm = ab.LoadAsset<GameObject>("Cube");
GameObject s = Instantiate(gm, new Vector3(0, -1, 0), Quaternion.identity);
s.transform.parent = transform;
}
// 远程加载
private IEnumerator LoadAssetBundleRequst()
{
// assetbundle放入cdn里面
UnityWebRequest requset = UnityWebRequestAssetBundle.GetAssetBundle("http://test.com/assetbundle/cube");
yield return requset.SendWebRequest();
AssetBundle ab = DownloadHandlerAssetBundle.GetContent(requset);
GameObject gm = ab.LoadAsset<GameObject>("Cube");
GameObject s = Instantiate(gm, new Vector3(0, -1, 0), Quaternion.identity);
s.transform.parent = transform;
}
// Update is called once per frame
void Update()
{
}
}