unity 打包资源及网络请求资源包

来源:互联网 发布:淘宝怎么样才不算盗图 编辑:程序博客网 时间:2024/05/19 11:38


第一步 导包


在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 就可以找到导出的 assetbundle


 网络请求资源包


需要注意的是:调用网络请求,需要使用协同 tartCoroutine(load());

load 函数如下

private IEnumerator load() {WWW www = new WWW("http://localhost/model/Cube.assetbundle"); yield return www;print("load complate:------------------------------------"+Time.time);     }




0 0
原创粉丝点击