Assetbundle创建与加载
来源:互联网 发布:linux service status 编辑:程序博客网 时间:2024/06/06 01:24
http://www.cnblogs.com/tekkaman/p/4040081.html
【Assetbundle创建与加载】
Unity有两种动态加载机制:一种是Resource.Load。一种是AssetBundle。Assetbundle是Unity Pro提供的功能,它可以把多个游戏对象或者资源二进制文件封装到Assetbundle中。供加载、解压使用。
【创建Assetbundle】
使用方法 BuildPipeline.BuildAssetBundle (Object, assets , pathName , options , targetPlatform)
参数1:它只能放一个对象。
参数2:可以放入一个数组对象。
参数3:保存路径。
参数4:BuilderAssetBundleOptions
CollectDependencies // 包含所有依赖关系。
CompleteAssets//强制包含整个资源
DisableWriteTypeTree//在资源包不包含类型信息。
DeterministicAssetBundle//编译资源包使用一个哈希表储存对象ID在资源包中。
UncompressedAssetBundle//不压缩Assetbundle,默认会进行压缩
参数5:平台
特别注意的是,电脑上和手机上打出来的Assetbundle不能混用,不同平台只能用自己的。
【载入Assetbundle】
使用方法:
1)WWW bundle = new WWW(path);
2)WWW bundle = WWW.LoadFromCacheOrDownload(path, fileVer);
载入成功后就可以通过资源名使用bundle.assetBundle.Load方法获取资源。
如下图所示
使用Assetbundle.Load会从Assetbundle的内存镜像中读取并创建一个Asset对象,创建的同时会分配相应的内存用于反序列化存储。
【内存释放】
最后在使用Assetbundle时候最好的方式是。
创建时:使用Assetbundle.load加载所需的asset,加载完后立即Assetbundle.Unload(false),释放Assetbundle文件本身的内存镜像,但不销毁加载的Asset对象。这样遍可以释放一部分内存。
释放时。如果是通过Instantiate的对象,用Destroy进行销毁。在合适的地方使用Resources.UnloadUnusedAssets,释放已经没有引用的Asset。Unity底层会对对象引用进行计数,如果引用为0.执行UnloadUnusedAssets就可以全部释放。
【使用要点】
1、AssetBundle会使用Lzma压缩。
2、Resource下的资源发布时会变成resources.assets文件,2G磁盘大小限制。首次完全下载,不可更新。
3、AssetBundle的本地磁盘缓存可多达4G,除了Web版只能50M。
4、兼容性。
5、AssetBundle创建方法:
6、BundleOption的区别。
7、AssetBundle.CreateFromMemory()速度慢。
8、AssetBundle.CreateFromFile只能加载非压缩的AssetBundle。
9、LoadLevel方法详解:
10、AssetBundle的释放。
- Assetbundle创建与加载
- Assetbundle创建与加载
- Assetbundle创建与加载
- Assetbundle创建与加载
- Assetbundle创建与加载
- Assetbundle创建与加载
- Unity创建Assetbundle与加载
- Unity3D基础学习之AssetBundle 资源包创建与加载
- Unity3D基础学习之AssetBundle 资源包创建与加载
- AssetBundle创建,加载,5.1版本
- AssetBundle的制作与加载
- Unity3d Assetbundle文件的导出与加载
- 关于AssetBundle的加载与卸载
- Unity5.X打包与加载AssetBundle
- 加载AssetBundle
- AssetBundle加载
- 关于UGUI图集AssetBundle的加载与释放
- unity使用AssetBundle使用记录四--加载与卸载(1)
- mysql查询优化
- Zbar和OpenCV识别条形码,比halcon中find_bar_code好用
- Android圆形饼图绘制(当饼图占比很小时描述文字的分开绘制)
- 【利用Python进行数据分析——经验篇4】将多张DataFrame表写入到同一个Excel的不同sheet中
- ASP.NET中使用jqGrid的完整实例及总结
- Assetbundle创建与加载
- app打包上传遇到的问题
- linux下opencv与cuda8.0冲突问题
- How to configure Red Hat Cluster using KVM fencing with two guest VM's running on a IBM PowerKVM
- perl sort 函数
- 本地存储,localstorage
- 闭包中this指向window的原因
- WEB基础之拼接标签的onclick传参问题
- 解决Cornerston的Authentication provider raised an exception (first credentials)问题