1、导出assetbundle:

  ①单个资源导出成assetbundle;

  ②多个资源导出成一个assetbundle;

2、读取assetbundle:

  ①加载到内存;

  ②解压为具体资源。

1、导出assetbundle:

  

①单个资源导出成assetbundle;

BuildPipeline.BuildAssetBundle(Object obj, null, string path, BuildAssetBundleOptions.CollectDependencies, BuildTarget.Android);

//obj 单个资源,转成Object类型
//path 路径(例如:"Assets/streamingassets/obj.unity3d"),资源包的后缀名可以任意写或不写
//BuildAssetBundleOptions.CollectDependencies 包含资源的依赖关系,比如要导出的资源是一个prefab,就会把其引用的mesh、贴图、材质球、动画统统导出到资源包里面去
//BuildTarget.Android 导出的资源包是给什么平台用的,Android、PC、或者别的什么

  ②多个资源导出成一个assetbundle;

BuildPipeline.BuildAssetBundle(null, Object[] objs, string path, BuildAssetBundleOptions.CollectDependencies, BuildTarget.Android);

//objs 包含多个资源的数组,Object[]类型
//path 路径(例如:"Assets/streamingassets/obj.unity3d"),资源包的后缀名可以任意写或不写
//BuildAssetBundleOptions.CollectDependencies 包含资源的依赖关系,比如要导出的资源是一个prefab,就会把其引用的mesh、贴图、材质球、动画统统导出到资源包里面去
//BuildTarget.Android 导出的资源包是给什么平台用的,Android、PC、或者别的什么

2、读取assetbundle:

  ①加载到内存;

  ②解压为具体资源。

IEnumerator Load(string path, string name)
{
/*下面是加载到内存的过程*/
WWW bundle = new WWW(path); //例如:"Assets/streamingassets/obj.unity3d"
yield return bundle; /*下面是解压为具体资源的过程*/
Object obj = bundle.assetBundle.Load(name); //name是具体资源的名字
}

注:IEnumerator是协程,可以想象成Unity3d中的多线程,就是同时可以干很多事情的意思,虽然原理上与多线程不同,但使用起来的效果几乎没有区别。如果要处理的是很多资源的assetbundle的话,不管是导成一个了,还是多个的,要结合策划的具体需求合理规划协程的组织。

随手补充:

[MenuItem("Assets/Export Android Assetbundle")]
static void Export()
{
string fileName = Selection.activeObject.name;
string assetbundlePath = EditorUtility.SaveFilePanel("Save", Application.dataPath, fileName, "assetbundle");
BuildPipeline.BuildAssetBundle(Selection.activeObject, null, assetbundlePath, BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets, BuildTarget.Android);
}

最新文章

  1. 查看旧版jexus命令
  2. linux命令:touch
  3. POJ-3461 Oulipo(KMP,模式串在主串中出现次数)
  4. jquery ui autoComplete自动完成
  5. 重看Decorator Pattern,联想到Delegate传递及Flags Enum--欢迎拍砖!
  6. Codeforces 553C Love Triangles(图论)
  7. usaco5.5-Hidden Passwords
  8. 自定义VS的ItemTemplates 实现任意文件结构
  9. ubuntu 下配置vim for python
  10. python学习:99乘法口诀
  11. C++编程剖析 问题 方案 和设计准则
  12. JdbcTemplate 配置多数据源(完全照抄,完整)
  13. Java基础中的RMI介绍与使用
  14. Android内存泄漏的检测流程、捕捉以及分析
  15. ps怎么撤销的三种方法和ps撤销快捷键以及连续撤销多步快捷键
  16. MySQL数据库解决乱码 latin1 转 gbk
  17. Extjs4 store load 有中文字符提交后台乱码解决方法
  18. Linux学习笔记02—磁盘分区
  19. 转-ubuntu清理卸载wine的残余项目
  20. oracle共享与专用模式的动态转换及区别(转载)

热门文章

  1. linux日常管理-sar工具
  2. SpringMVC 学习笔记(请求方法的返回值和参数)
  3. XML解析代码课堂讲解实例
  4. C语言入门题
  5. 树莓派 Learning 002 装机后必要的操作 --- 08 实现PC端 远程登入 树莓派 --- 法2 远程登录树莓派的图形桌面
  6. vue前端+java后端 vue + vuex + koa2开发环境搭建及示例开发
  7. java之格式化输出
  8. ZOJ 3939 The Lucky Week (暴力找规律)
  9. 每次选中数组中的N条数据, 如果让每条数据被选中的次数做到平均??
  10. vue中computed与methods的异同