unity3d打包和包的使用
打包:
①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 frame 12 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 }