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


第一步 导包


在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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值