尊重原创,转载请注明出处,谢谢!
http://blog.csdn.net/y1196645376/article/details/52567171
这篇文章主要讲的是旧版的AssetBundle打包一系列方案。
1.API介绍:
a.BuildPipeline.BuildAssetBundle :打包常规资源生成AssetBundle. |
- Object mainAsset: 指定mainAsset,这样解析该AB包的时候可以通过assetBundle.mainAsset得到。
- Object[] assets : 指定所有asset,传入对象数组.解析的时候可以通过LoadAsset(“name”)得到。
- pathName : 指定生成的AB包的存储路径
- BuildAssetBundleOptions:打包时候的一些特定属性选项。
CompleteAssets : 用于保证资源的完备性,默认开启; CollectDependencies:用于收集资源的依赖项,默认开启; DeterministicAssetBundle:用于为资源维护固定ID,默认开启; ForceRebuildAssetBundle:用于强制重打所有AssetBundle文件,新增; IgnoreTypeTreeChanges:用于判断AssetBundle更新时,是否忽略TypeTree的变化,新增; AppendHashToAssetBundleName:用于将Hash值添加在AssetBundle文件名之后,开启这个选项可以直接通过文件名来判断哪些Bundle的内容进行了更新(4.x下普遍需要通过比较二进制等方法来判断,但在某些情况下即使内容不变重新打包,Bundle的二进制也会变化),新增。 ChunkBasedCompression:用于使用LZ4格式进行压缩,5.3新增。 |
- targetPlatform:适用平台。选择该AB应该使用哪些平台。
StandaloneWindows: 打包32位windows平台上的包。 StandaloneWindows64: 打包64位windows平台上的包。 iOS: 打包ios平台上的包。 Android : 打包Android平台上的包。 当然远不止支持这几个平台格式,但是其他的平台不是常用就不介绍了。 |
b.BuildStreamedSceneAssetBundle:将场景打包成AsssetBundle包。 |
- levels:欲打包的所有场景文件路径。
- localtionPath : 生成AssetBundle包保存的相对路径。
- target : 同上。
options : 同上。
www下载好场景AB包之后通过获取成员属性assetBundle就可以吧场景信息读入到内存中了。然后只需要通过Application.LoadLevel(name)就可以加载对应的场景。
c.WWW:通过一个路径进行下载(无论是服务器路径还是本地路径下载操作都一样)。 |
Url:下载路径;请注意:如果是本地链接请加上前缀”file://”,如果是http链接请加上前缀”http://”。
www下载后的得到的对象可以通过获取成员属性assetBundle,即可得到下载文件的AB包。不过该方法下载得到的资源统统是放在内存里面的,也就是说每次打开游戏都需要重新下载。
d.WWW.LoadFromCacheOrDownload : 通过路径和版本号下载。 |
- Url: 下载路径;请注意:如果是本地链接请加上前缀”file://”,如果是http链接请加上前缀”http://”。
Version:版本号;请注意这个版本号不需要你自己去维护,每次Unity从服务器下载资源的到本地的时候都会维护这个资源的版本号。当下次调用该API下载该资源会先对比本地版本号和参数版本号是否匹配,如果不匹配就从服务器重新下载,否则就从磁盘缓存文件中读取。
www下载后的得到的对象可以通过获取成员属性assetBundle,即可得到下载文件的AB包。该方法下载的资源是缓存到电脑缓