AssetBundle的创建
using UnityEngine; using UnityEditor; using System.IO; using System; public class BuildAssetBundlesFromDirectory { [@MenuItem("Asset/Build AssetBundles From Directory of Files")] static void ExportAssetBundles () { string path = AssetDatabase.GetAssetPath(Selection.activeObject); Debug.Log("Selected Folder: " + path); if (path.Length != 0) { path = path.Replace("Assets/", ""); string [] fileEntries = Directory.GetFiles(Application.dataPath+"/"+path); string[] div_line = new string[] { "Assets/" }; foreach(string fileName in fileEntries) { Debug.Log("fileName="+fileName); string[] sTemp = fileName.Split(div_line, StringSplitOptions.RemoveEmptyEntries); string filePath = sTemp[1]; //int index = filePath.LastIndexOf("/"); filePath = "Assets/" + filePath; //Debug.Log(filePath); string localPath = filePath; //if (index > 0) //localPath += filePath; //localPath = "Assets/Prefabs/Binoculars.prefab"; UnityEngine.Object t = AssetDatabase.LoadMainAssetAtPath(localPath); if (t != null) { Debug.Log(t.name); string bundlePath = "Assets/"+path+"/" + t.name + ".unity3d"; Debug.Log("Building bundle at: " + bundlePath); //Object[] selection = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets); BuildPipeline.BuildAssetBundle(t, null, bundlePath, BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets); } } } } }
从AssetBundle实例化对象
using UnityEngine; using System.Collections; public class Test : MonoBehaviour { string url = "http://192.168.2.105:8080/Test/AssetBundle/Cube.unity3d"; IEnumerator Start() { // Start a download of the given URL // 开始从指定路径下载 WWW www = WWW.LoadFromCacheOrDownload(url, 1); // Wait for download to complete // 等待下载完成 yield return www; if (www.error != null) { Debug.Log (www.error); yield return null; } Instantiate(www.assetBundle.mainAsset,transform.position,Quaternion.identity); } }
WWW www = WWW.LoadFromCacheOrDownload(url, 1);
改成
WWW www = new WWW(url);