基于Unity5.x版本资源内存管理方案

1、Unity对资源的管理API汇总:

Resources:Load、LoadAll、LoadAsync、UnloadAsset、UnloadUnusedAssets。

AssetBundle:LoadFromFile、LoadFromFileAsync、LoadFromMemory、LoadFromMemoryAsync、LoadAllAssets、LoadAllAssetsAsync、LoadAsset、LoadAssetAsync、Unload(true/false)。

GameObject:Instantiate、Destroy、DestroyImmediate。

以上API是Unity5.x下几乎所有的对内存资源管理的接口,所有的内存管理方案也几乎都是用以上接口实现的。

2、文件的加载方式:

对Resource内文件的加载:Resources.Load、Resources.LoadAll、Resources.LoadAsync

支持包内加载的同步加载方式:AssetBundle.LoadFromeFile

常用的同步加载方式:AssetBundle.LoadFromFile、File.Open

常用的异步方式(都支持包内):AssetBundle.LoadFromFileAsync、new www、www.LoadFromCacheOrDownload

3、对比几种加载assetbundle方式:

对于new www这种加载资源文件的方式,其优点是不会受到ios平台256文件句柄的限制,而其缺点是这种方式加载资源后所占的内存要比其他方式高。而对于www.LoadFromCacheOrDownload这种方式,其加载后所占内存会比较低,在内存中是以SerializeFile的格式存在,但其会受到ios平台256文件句柄上限的限制。不过在unity5.3之后,AssetBundle.LoadFromFileAsync和www.LoadFromCacheOrDownload如果超过句柄上限会自动转成new www的方式加载。

4、AssetBundle加载入内存后的状态图:


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值