赞
踩
Unity5增加了新的打包AssetBundle方式-> BuildPipeline.BuildAssetBundles,大体思想是把资源以及依赖项分别打包,并用文本记录它们间的依赖关系,这种方式相对旧版本将资源粗暴的打成一个包来说,带来的好处也显而易见,每个资源以及依赖项都只打包一次不会造成依赖循环(不了解的同学可以看一下Unity AssetBundle爬坑手记 - 夜阑卧听风吹雨),但同时打包后的资源更碎片化,导致加载耗时更多。大家都有复制文件的经验,复制一个包比复制一堆碎文件快(同大小的两份文件)同样道理。
思想上有点类似李总(李剑英)的资源热更新方案,将资源信息(布局,参数等)解析成文本,使用的时候只需下载文本文件(占用物理内存小),再根据文本文件生成资源。但据我测试,BuildPipeline.BuildAssetBundles执行效率较低,在加载相同prefab的前提下根据文本生成prefab耗时51.59ms,使用BuildPipeline.BuildAssetBundles 加载耗时约118ms。这里只给大家一个大概的参考。
1. 打包AssetBundle,代码来源http://blog.csdn.net/onafioo/article/details/50969945, 稍作修改增加了自动关联依赖项的方法
- using UnityEngine;
- using System.Collections;
- using UnityEditor;
- using System.IO;
-
- /// <summary>
- /// 把Resource下的资源打包成.data到OutPut目录下
- /// </summary>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。