Addressable:6、内存管理(Memory management)

本文详细介绍了Unity Addressables的内存管理,包括镜像加载和卸载、资源加载、场景加载、GameObject实例化和数据加载。重点阐述了何时及如何使用Addressables.Release方法来减少引用计数,以及何时资源会被真正卸载。此外,还提到了可寻址事件查看器用于监视引用计数,并提醒开发者避免在不影响游戏体验的情况下使用Resources.UnloadUnusedAssets。
摘要由CSDN通过智能技术生成

1、镜像加载和卸载

当使用可寻址资源时,确保适当的内存管理的主要方法是正确镜像加载和卸载调用。如何执行取决于您的资源类型和加载方法。但是,在所有情况下,释放方法都可以接受已加载的资源,也可以采用加载返回的操作句柄。

例如:在场景创建过程中(如下所述),加载返回一个 AsyncOperationHandle,您可以通过返回的句柄或通过跟上handle.Result(在本例中是一个 SceneInstance)来释放它。

1.资源加载

要加载资源,请使用Addressables.LoadAssetAsync或Addressables.LoadAssetsAsync。
这会将资源加载到内存中而不实例化它。每次执行加载调用时,都会为每个加载的资源中添加一个引用计数。如果使用相同的地址调用LoadAssetAsync三次,将获得AsyncOperationHandle结构的三个不同实例,所有实例都引用相同的底层操作。该操作对应的资源的引用计数为3。如果加载成功,则生成的AsyncOperationHandle结构将在.Result属性中包含资源。您可以通过Unity的内置实例化方法使用加载的资源进行实例化,该方法不会增加Addressables引用计数。

要卸载资源,请使用Addressables.Release方法减少引用计数。当给定资源的引用计数为零时,该资源已准备好卸载,并减少了任何依赖项的引用计数。

注意:资源可能会立即卸载,也可能不会立即卸载,取决于现有的依赖关系。有关更多信息,请阅读有关

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值