打包:
①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加载预设:
1 using UnityEngine; 2 using System.Collections; 3 4 public class loadAB : MonoBehaviour { 5 6 // Use this for initialization 7 void Start () { 8 StartCoroutine (loadBundle("file://"+Application.streamingAssetsPath+"/"+"StreamingAssetsNew Prefab.assetbundle")); 9 }10 11 // Update is called once per frame12 void Update () {13 14 }15 private IEnumerator loadBundle(string path) {16 WWW load = new WWW (path);17 yield return load;18 GameObject obj = GameObject.Instantiate (load.assetBundle.mainAsset) as GameObject;19 load.assetBundle.Unload (false);20 }21 }