AssetBundle打包指南
步骤一:在Assets文件夹中创建两个新文件夹,分别命名为Editor和streamingAssets。 步骤二:选择需要打包的文件并进行打包操作。 以下是完整的代码示例:
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"); } }} }
如何从AssetBundle加载预设
使用以下代码可以实现从AssetBundle中加载预设的功能: using UnityEngine;using System.Collections;public class LoadAB : MonoBehaviour { public void Start() { StartCoroutine(LoadBundle("file://"+Application.streamingAssetsPath+"/"+"StreamingAssetsNew Prefab.assetbundle")); } 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); }}