Addressable-加载指定资源

1、Addressables中的资源标识类

  • AssetReference                通用资源标识类 可以用来加载任意类型资源
  • AssetReferenceAtlasedSprite   图集资源标识类
  • AssetReferenceGameObject      游戏对象资源标识类
  • AssetReferenceSprite          精灵图片资源标识类
  • AssetReferenceTexture         贴图资源标识类
  • AssetReferenceTexture2D
  • AssetReferenceTexture3D
  • AssetReferenceT<>             指定类型标识类

通过不同类型标识类对象的申明 我们可以在Inspector窗口中筛选关联的资源对象

2、加载资源

注意:所有Addressables加载相关都使用异步加载
需要引用命名空间:using UnityEngine.ResourceManagement.AsyncOperations;

AsyncOperationHandle<GameObject> handle = assetReference.LoadAssetAsync<GameObject>();
handle.Completed += CompleteFunc;

加载成功后使用

  1. 通过事件函数传入的参数判断加载是否成功并且创建(handle.Status)
  2. 通过资源标识类对象判断 并且创建(assetReference.IsDone)

3、加载场景

sceneReference.LoadSceneAsync().Completed += (handle) =>{};

4、释放资源

assetReference.ReleaseAsset();

一定要资源加载过后,使用完成后再去释放 

  1. 释放资源方法后,资源标识类中的资源 (assetReference.Asset) 会置空,但是AsyncOperationHandle类中的对象 (handle.Result) 不为空
  2. 释放资源不会影响场景中被实例化出来的对象,但是会影响使用的资源,比如加载了一个预制件,然后释放资源,那么实例出来的预制件不会有影响,但是如果在预制件生成后再加载一个材质球并赋值给刚刚加载的预制件,然后再释放材质球的资源,那么预制件的材质球会丢失(Play Mode Script 需要是 Use Exsiting Build 才有可能生效)

5、直接实例化对象

AssetReferenceGameObject 的 InstantiateAsync 方法

6、自定义标识类(老版)

自定义类,比如继承AssetReferenceT<Material>类 即可自定义一个指定类型的标识类
该功能主要用于Unity2020.1之前,因为之前的版本不能直接使用AssetReferenceT泛型字段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值