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)
章节信息
- Addressable Asset System(可寻址资源系统)-总章
- Addressable Asset System(可寻址资源系统)-第一章 简介
- Addressable Asset System(可寻址资源系统)-第二章 基本概念
- Addressable Asset System(可寻址资源系统)-第三章 开始使用
- Addressable Asset System(可寻址资源系统)-第四章 基本的设置详解(未完待续)
- Addressable Asset System(可寻址资源系统)-第五章 资源托管(未完待续)
- Addressable Asset System(可寻址资源系统)-第六章 旧系统升级指导手册
- Addressable Asset System(可寻址资源系统)-第七章 内存管理
- Addressable Asset System(可寻址资源系统)-第八章 AsyncOperationHandle详解
- Addressable Asset System(可寻址资源系统)-第九章 自定义操作(未完待续)
- Addressable Asset System(可寻址资源系统)-第十章 资源分析工具(未完待续)
- Addressable Asset System(可寻址资源系统)-第十一章 常用API详解(未完待续)