Addressable Asset System可寻址资源系统-第六章 旧系统升级指导手册

24 篇文章 1 订阅
7 篇文章 3 订阅

Addressable Asset System可寻址资源系统-第六章 旧系统升级指导手册

在本章中将向您介绍如何将现在项目中的资源管理切换为Addressable

Unity项目中对于资源的使用有三种典型的方式:

  • 直接引用的资源 - 直接将资源添加到组件或者场景中(这部分资源会被自动加载)。注意:可寻址系统中对于资源的加载全部是采用异步的方式,也就意味着对于如果将直接引用换成基于AssetReference对象,同时您也必须更新您的代码以便能够异步处理。
  • 位于Resources中的资源 - 直接资源资源添加到Resources目录中,使用资源的名称通过Resources.Load直接调用
  • 打包到AssetBundle中的资源 - 将资源打包入AssetBundle中,通过AssetBundle的方式加载

直接引用的资源

对于使用直接引用方式使用的对象,直接使用AssetReference替换掉,就像:

public GameObject directRefMember;

替换为:

public AssetReference AssetRefMember;

同时在属性面板中修改其指向的“地址”为之前资源被标记的“地址”,同时根据实际的需要修改对应的脚本,用于资源的加载,如:

AssetRefMember.LoadAssetAsync<GameObject>();

或者

AssetRefMember.InstantiateAsync(pos, rot);

位于Resources中的资源

如果您将Resources目录的一个资源标记为可寻址资源的话,系统会自动将这些资源移动到一个名称为Resources_moved目录中,为了保证与原来使用Resource时的资源路径保持不变,系统会自动将资源的“地址”标记为原来的地址(Resources后的资源路径)。同时需要您在代码中进行修改为如下形式:

Resources.LoadAsync<GameObject>("desert/tank.prefab");

修改为:

Addressables.LoadAssetAsync<GameObject>("desert/tank.prefab");

打包到AssetBundle中的资源

当您通过Window->Asset Manager->Addressable打开窗口后,系统会自动检查是否当前资源是否存在被标记为原来AssetBundle的标记,如果存在的话系统会提供是否直接转换

如果您需要自动转换直接选择__Convert__,系统将会将原来标记转换成可寻址系统中的一个资源组。如果您选择__Ignore__的话,需要您手动进行修改.对于直接引用或者Resource目录中的资源,按照上述的描述进行处理即可。

默认情况下,资源的“地址”与资源相对于Assets目录的文件路径相同,如果您使用默认的路径做为资源的地址的话,它将与您从AssetBundle中加载资源的方式是相同的,对于AssetBundle及依赖AssetBundle的加载,您不需要再状态,可寻址系统会自动帮您处理完成。

格外的说明

在迁移项目前,请一定要查阅一下可寻址系统对于资源的管理方式,以避免出现资源无法及时卸载的问题

声明

本文中的内容属于个人总结整理而来,个人水平有限,对于部分细节难免有理解错误及遗漏之处,如果您在阅读过程中有所发现,希望您能指正,同时文章中的部分内容也参考了其它大神的文章,如果文章中的内容侵犯了您的权益,表示非常歉意,请您指出,我将尽快修改。

如果您进行转载,请标明出处。

Addressable Asset System(可寻址资源系统)-第六章 旧系统升级指导手册(http://www.liyubin.com/articles/2019/08/09/1565319569139.html)

章节信息

参考资料

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值