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 }

 

posted @ 2015-07-23 17:29  陆离可  阅读(535)  评论(0编辑  收藏  举报