bundle内存 unity_Unity3dAssetbundle创建与加载

Unity 中的 Assetbundle 功能允许开发者动态加载资源,提高游戏性能。创建 Assetbundle 使用 BuildPipeline.BuildAssetBundle 方法,加载则可以通过 WWW 类或 LoadFromCacheOrDownload 方法。内存管理方面,加载 Asset 后应及时使用 Unload(false) 释放 Assetbundle 内存,而实例化的对象需用 Destroy 销毁。AssetBundle 使用 Lzma 压缩,Resource 资源有限制且不可更新,而 AssetBundle 本地缓存可达4G。
摘要由CSDN通过智能技术生成

【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方法获取资源。

如下图所示

d4f24d685b4f

使用Assetbundle.Load会从Assetbundle的内存镜像中读取并创建一个Asset对象,创建的同时会分配相应的内存用于反序列化存储。

【内存释放】

d4f24d685b4f

最后在使用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、兼容性。

d4f24d685b4f

5、AssetBundle创建方法:

d4f24d685b4f

6、BundleOption的区别。

d4f24d685b4f

7、AssetBundle.CreateFromMemory()速度慢。

8、AssetBundle.CreateFromFile只能加载非压缩的AssetBundle。

9、LoadLevel方法详解:

d4f24d685b4f

10、AssetBundle的释放。

d4f24d685b4f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值