打包:
①Assets下新建文件夹Editor和steamingAssets
②对选定文件打包:
using UnityEngine;
using UnityEditor;
using System.Collections; public class AssetBundle : MonoBehaviour {
[MenuItem("Custom Editor/Create AssetBundles Main")]
static void CreateAssetBundlesMain() {
Object[] SelectedAsset = Selection.GetFiltered (typeof(Object),SelectionMode.DeepAssets); foreach(Object obj in SelectedAsset) {
string sourcePath = AssetDatabase.GetAssetPath(obj);
string targetPath = Application.dataPath + "/StreamingAssets" + obj.name +".assetbundle";
if (BuildPipeline.BuildAssetBundle(obj,null,targetPath,BuildAssetBundleOptions.CollectDependencies)) {
Debug.Log (obj.name+"success");
}
else {
Debug.Log(obj.name+"failure");
}
}
}
}
从Asset Bundle加载预设:
using UnityEngine;
using System.Collections; public class loadAB : MonoBehaviour { // Use this for initialization
void Start () {
StartCoroutine (loadBundle("file://"+Application.streamingAssetsPath+"/"+"StreamingAssetsNew Prefab.assetbundle"));
} // Update is called once per frame
void Update () { }
private IEnumerator loadBundle(string path) {
WWW load = new WWW (path);
yield return load;
GameObject obj = GameObject.Instantiate (load.assetBundle.mainAsset) as GameObject;
load.assetBundle.Unload (false);
}
}