zoukankan      html  css  js  c++  java
  • 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);
     
    		
        }




  • 相关阅读:
    FusionMap 检测融合基因
    嵌合体序列
    seqtk 的安装和使用
    cutadapt 的安装与使用
    C语言简单选择排序
    C语言冒泡排序
    Java实现的各种排序算法(包括冒泡,快排等)
    C++实现顺序计算输入表达式的值
    java多线程有几种实现方法?线程之间如何同步
    java中==与equal()方法的区别
  • 原文地址:https://www.cnblogs.com/blfshiye/p/3756399.html
Copyright © 2011-2022 走看看