第一步 导包c#
在Assets新建一个Editor文件夹 缓存
新建一个Test类网络
using UnityEngine; using System.Collections; using UnityEditor; public class Test : Editor { //打包单个 [MenuItem("Custom Editor/Create AssetBunldes Main")] static void CreateAssetBunldesMain () { Object[] SelectedAsset = Selection.GetFiltered (typeof(Object), SelectionMode.DeepAssets); foreach (Object obj in SelectedAsset) { string targetPath = Application.dataPath + "/StreamingAssets/" + obj.name + ".assetbundle"; if (BuildPipeline.BuildAssetBundle (obj, null, targetPath, BuildAssetBundleOptions.CollectDependencies)) { Debug.Log(obj.name +"资源打包成功"); } else { Debug.Log(obj.name +"资源打包失败"); } } //刷新编辑器 AssetDatabase.Refresh (); } [MenuItem("Custom Editor/Create AssetBunldes ALL")] static void CreateAssetBunldesALL () { Caching.CleanCache (); string Path = Application.dataPath + "/StreamingAssets/ALL.assetbundle"; Object[] SelectedAsset = Selection.GetFiltered (typeof(Object), SelectionMode.DeepAssets); foreach (Object obj in SelectedAsset) { Debug.Log ("Create AssetBunldes name :" + obj); } if (BuildPipeline.BuildAssetBundle (null, SelectedAsset, Path, BuildAssetBundleOptions.CollectDependencies)) { AssetDatabase.Refresh (); }else{ } } [MenuItem("Custom Editor/Create Scene")] static void CreateSceneALL () { //清空一下缓存 Caching.CleanCache(); string Path = Application.dataPath + "/MyScene.unity3d"; string []levels = {"Assets/Level.unity"}; //打包场景 BuildPipeline.BuildPlayer( levels, Path,BuildTarget.WebPlayer, BuildOptions.BuildAdditionalStreamedScenes); AssetDatabase.Refresh (); } }
选择须要导出的prefab 在菜单中找到Custom Editor编辑器
导出便可,导出的目标文件夹 为StreamingAssets 函数
show in explore 就能够找到导出的 assetbundleui
网络请求资源包spa
须要注意的是:调用网络请求,须要使用协同 tartCoroutine(load());3d
load 函数以下code
private IEnumerator load() { WWW www = new WWW("http://localhost/model/Cube.assetbundle"); yield return www; print("load complate:------------------------------------"+Time.time); }