zoukankan      html  css  js  c++  java
  • Unity5.1 AssetBundle

    资源管理脚本

     1 using System;
     2 using System.Collections;
     3 using System.Collections.Generic;
     4 using UnityEngine;
     5 using UnityEditor;
     6 
     7 
     8 namespace LOAsset
     9 {
    10     public class LOAssetManager
    11     {
    12         public LOAssetManager()
    13         {
    14 
    15         }
    16 
    17         /// <summary>
    18         /// 处理包裹
    19         /// </summary>
    20         /// <param name="ab"></param>
    21         /// <param name="name"></param>
    22         public static void ProcessAssetBundle(AssetBundle ab, string name)
    23         {
    24             //获取所有的资源名数组
    25             string[] all_asset_names = ab.GetAllAssetNames();
    26 
    27             //获取所有的场景名数组
    28             string[] all_scene_names = ab.GetAllScenePaths();
    29 
    30             if (!TestStringArray(all_asset_names))
    31             {
    32                 Debug.Log("no assets..");
    33             }
    34 
    35             if (!TestStringArray(all_scene_names))
    36             {
    37                 Debug.Log("no scenes..");
    38             }
    39 
    40             //获取整个AssetBundle文件夹的配置文件
    41             AssetBundleManifest manifest = ab.LoadAsset<AssetBundleManifest>("AssetBundleManifest");
    42 
    43             //获取
    44             string[] all_bundles = manifest.GetAllAssetBundles();
    45 
    46             if (!TestStringArray(all_asset_names))
    47             {
    48                 Debug.Log("no bundles..");
    49             }
    50         }
    51 
    52         /// <summary>
    53         /// 测试函数
    54         /// </summary>
    55         /// <param name="names"></param>
    56         /// <returns></returns>
    57         public static bool TestStringArray(string[] names)
    58         {
    59             if (names == null)
    60             {
    61                 return false;
    62             }
    63 
    64             foreach (string item in names)
    65             {
    66                 Debug.Log(item);
    67             }
    68             return true;
    69         }
    70     }
    71 }

    测试脚本

     1 using UnityEngine;
     2 using System.Collections;
     3 using LOAsset;
     4 
     5 public class TestScript : MonoBehaviour
     6 {
     7     /// <summary>
     8     /// 下载资源包
     9     /// </summary>
    10     /// <returns></returns>
    11     IEnumerator DownloadAssetBundle()
    12     {
    13         //访问地址头
    14         string url = "http://project.lanou3g.com/assetbundles/Others/";
    15 
    16         //访问资源名
    17         string root = "Others";
    18 
    19         //构造访问www对象
    20         WWW root_url = new WWW(url + root);
    21 
    22         yield return root_url;
    23 
    24         //下载完成后,获取assetbundle
    25         AssetBundle rootBundle = root_url.assetBundle;
    26 
    27         //处理Bundle...
    28         LOAssetManager.ProcessAssetBundle(rootBundle, root);
    29 
    30         //Cube资源的名字“prefabs/cube.prefab”
    31         string cube = "prefabs/cube.prefab";
    32 
    33         //构造访问对象
    34         WWW cube_url = new WWW(url + cube);
    35 
    36         yield return cube_url;
    37 
    38         AssetBundle cubeBundle = cube_url.assetBundle;
    39 
    40         //加载资源...
    41         GameObject prefab = cubeBundle.LoadAsset<GameObject>("mycube.prefab");
    42 
    43         GameObject gameObject = GameObject.Instantiate(prefab);
    44 
    45         gameObject.transform.position = new Vector3(0, 0, 0);
    46     }
    47 
    48     // Use this for initialization
    49     void Start () {
    50         //开始加载过程...
    51         StartCoroutine("DownloadAssetBundle");
    52     }
    53     
    54     // Update is called once per frame
    55     void Update () {
    56     
    57     }
    58 }

          

  • 相关阅读:
    spring + spring mvc + mybatis + react + reflux + webpack Web
    陈忠实和路遥:日他妈的文学和你懂个锤子
    Spring+SpringMVC+MyBatis+easyUI整合基础篇
    JAVA方法中的参数用final来修饰的效果
    全球晶圆代工厂哪家强?2016年Top30名单
    EXT combobox 二级连动 清空store缓存数据
    潘通
    MySQL性能优化
    启用了不安全的HTTP方法
    Hibernate一级缓存(基于查询分析)
  • 原文地址:https://www.cnblogs.com/loveforliving/p/4757317.html
Copyright © 2011-2022 走看看