![](https://csdnimg.cn/release/download_crawler_static/5262100/bg1.jpg)
http://blog.csdn.net/tanmengwen
Unity 3D 里有
两种动态加载机制
:
一是 Resources.Load;
一是通过 AssetBundle;
其实两者本质上没有什么区别。Resources.Load 就是从一个缺省打进程序包里的
AssetBundle 里加载资源,而一般 AssetBundle 文件
需要你自己创建
,运行时动态加载,可
以指定路径和来源的。其实场景里所有静态的对象也有这么一个加载过程,只是 Unity 后台
替你自动完成了。
1. AssetBundles
是什么?
在一些大型的网络游戏,或者加载比较多的一些场景时,如果要等待所有模型,贴图等
各种资源文件加载完毕才能执行游戏,对 用户将会是一个很头大的事情。所以就需要用到动
态加载,即 AssetBundles。比如玩家在进入游戏时先加载一些周围的场景文件,这样不仅
可以提高速度还可以减少内存资源的消耗。
AssetBundles 是可以把 unity3d 中你所创建的文件或任何资源导出的一种文件格式,
这些文件导出后使用的是一种特定的文件格式(.Unity3d),这些特定格式的文件能在需要
的时候加载到场景中。而这些特定的文件格式可以是模型,贴图,声音文件甚至是场景文件,
它们是先前就被设计好的文件,所以很容易就可以被下载到你所建立的游戏或场景中来
AssetBundles 可以是任意类型的文件只要是 unity3d 能识别的资源文件格式,识别主
要是以文件扩展名为准,比如.prefab 等等。当然如果你想包含自定义的二进制文件,需要
命名这些文件为以".bytes"为后缀,Unity 将会把这些文件导成 TextAssets。
2. Creating AssetBundles
创建资源包
有三个类方法可以用来构建资源包:
BuildPipeline.BuildAssetBundle,
BuildPipeline.BuildStreamedSceneAssetBundle
BuildPipeline.BuildAssetBundleExplicitAssetNames.
• BuildPipeline.BuildAssetBundle allows you to build AssetBundles of any type of
asset.
可以构建任意类型资源的资源包。【创建一个压缩好的包含 Assets 下的所有资
源文件.unity3d。可以包含是项目目录下的任意资源,而把所有的资源压缩成一
个.unity3d 的文件,这个文件包括所有的预置物体(prefabs),纹理贴图(textures),