Unity Addressable Asset System 可寻址资 产系统,从零开始(一)——小姐姐的新烦恼

小姐姐系列更新啦

这又是另一条故事线了,为了表示之前总是放鸽子的歉意,带着小姐姐去了趟环球影城
在这里插入图片描述
玩的是灰常的开心,但是在结束的时候小姐姐又抑郁了起来,原来是明天上班又要去用Assetbundle做加载,自己又吃不消,
请添加图片描述
唉,看在⚽环球⚽这么大的份上😻😻😻,我对小姐姐说,我们一块来学下Addressable吧,超级好用!

这是这一系列的总目录Unity Addressable Asset System 可寻址资 产系统(图文详细)——总目录



🚩一、Addressable是什么

🖌️开始

在Unity 4中,Unity引入了Assetbundle系统,这个系统可以将资产打包成离散的单元,以便在运行时
动态加载。使用Assetbundle可以将资源与程序安装包分开。这可以让程序的初始安装包保持较小的体
积,同时可以让程序能动态更新资源。
尽管Assetbundle有很多好处,但它是一个偏底层的系统,在实际生产中使用Assetbundle是一项复杂
的任务。Unity中没有直观的工作流来支持assetbundle开发使用的整个生命周期。另外如果想要将
Unity中直接引用和加载资产的方式转到Assetbundle上会很麻烦。将程序从纯静态的内置内容迁移到能
够通过增量更新的动态加载内容,需要大量的重构和自定义编程。因此,对于许多(即使不是大多数)
开发人员来说,是很头大的一件事。

🖌️设计思想

⚙️1.关注点分离:引用与打包资产
Addressables的主要功能是让你不再关心什么资源正在如何从哪里加载。任何资产,包括场景,
prefab,文本资产等,都可以标记为Addressable,并赋予唯一的名称。一旦标记为addressable,就可
以在代码中使用新的AssetReference类型来引用和加载。另外,可寻址资产可以作为内置内容进行打包
和加载,也可以打包成assetbundle以在运行时动态加载。通过这种关注点的分离,有关内容打包和分
发的决策可以推迟到上线之前,而无需更改逻辑代码。

⚙️2.运行时内存管理
使用Assetbundle加载资源的优势在于:它可以从内存中卸载不再需要的资源。想要高效地跟踪加载了
哪些资源以及可以安全卸载哪些资源,在没有Addressable之前,是留给开发人员的复杂编程任务。现
在通过Addressable加载的资产及其依赖项,系统会自动进行引用计数,并且不再使用的assetbundle
及其依赖项会自动卸载。此外,Addressables提供了可视化Profiler,用于实时调试已加载的资产和
assetbundle引用计数。

⚙️3.更快的迭代
Addressable为资产加载过程提供了一些重要的抽象概念,内容发生更改时可以更快地迭代。
播放模式模拟:无需打包过程即可直接从磁盘加载资产,同时仍提供通过事件探查器调试资产引用
计数的功能。
快速增量构建:Addressables基于新的*Scriptable Build Pipeline(可编程构建管道),可提高增
量构建的速度和可靠性。
Editor Hosting Services :内置的资源托管服务,用于将可寻址内容提供给局域网连接(也可以
利用花生壳,ngrok,natapp等转发到互联网)的设备。这种方法用于迭代设备上的内容非常快
捷,方便。

🖌️什么是Addressable Asset可寻址资产

通过将资产设置为“Addressable”,你可以使用该资产的唯一地址从任何地方获取它。不管该资产存在
本地应用程序中还是位于服务器上,可寻址资产系统都会找到并返回它。你可以通过它的地址加载单个
可寻址资产,也可以使用定义的自定义标签同时加载多个可寻址资产。

🖌️为什么要使用可寻址资产

Unity原有的资产管理方式很难用。可寻址对象缩短了迭代周期,使你可以将更多时间用于设计,编码
和测试应用程序。
迭代时间:通过地址引用内容非常有效。对内容的优化不再需要更改代码。
依赖关系管理:系统返回所请求内容的所有依赖关系,以便在将内容返回给你之前加载所有网格,
着色器,动画等。
内存管理:系统加载或卸载资产时,自动计数引用并提供强大的分析器,以帮助你发现潜在的内存
问题。
内容打包:因为系统可以映射并理解复杂的依赖关系链,所以即使在移动或重命名资产时,它也可
以有效打包。你可以轻松地为本地和远程部署准备资产,以支持可下载的内容和减小的应用程序大
小。

🖌️说人话

上面的都太过于官方了,总结一句话,就是Addressable是assetbundle的升级版本,可以界面可视化,好多繁琐的底层操作不需要再去关心了。

🚩二、Addressable安装

这里用的Addressable的版本为 1.8.5
可寻址资产系统包含两个Package:
Addressable包(主要包)
Scriptable Build Pipeline 可编程构建管线包(依赖项)
当安装Addressable包时,Scriptable Build Pipeline包会自动安装。
💚💚💚注意:Addressables需要Unity 2018.3或更高版本。

⚙️1、在Unity的菜单栏中打开:Windows > Package Manager
⚙️2、在Package Manager中找到Addressables并安装
在这里插入图片描述

🚩三、Addressable准备可寻址资产

🖌️将资产标记为Addressable

方法1:在Inspector中标记Addressable,直接打勾就可以了,单击Addressable复选框,然后输入用于
标识资产的地址,默认是资产在Project中的路径。
在这里插入图片描述

方法2:使用Addressable窗口标记资产,选择 Window > Asset Management > Addressables 打开Addressables窗口。接下来,将所需资
产从Project窗口拖动到Addressables窗口中任一资产组(同一资产组的资产打包时会包含在一个文件
中)。
在这里插入图片描述

🖌️设置地址

资产的默认地址是项目中资产的路径(例如Assets / images / myImage.png)。要在Addressables窗口
更改资产的地址,右键单击该资产,然后选择“ Change Address”。
在这里插入图片描述

首次使用可寻址资产时,系统会在Assets / AddressableAssetsData文件夹中为你的项目保存一些编辑和
运行时的数据资产,应将其添加到版本控制中。

🖌️添加、选择Label标签

Addressable资产不仅可以通过地址加载,还可以通过Label进行批量加载。比如角色皮肤、不同质量的
纹理等等。
1.首先需要在AddressableAssetSettings中添加Label,要在Addressables窗口Tools——Labels
在这里插入图片描述
在这里插入图片描述
2、给资产设置Label,可以逐个设置,也可以多选批量设置
在这里插入图片描述

🖌️打包

在打包程序之前,需要将Addressable资产打包成游戏运行时可以使用的文件。此步骤不是自动的。你
可以通过编辑器或API打包以下内容:
要在编辑器中打包内容,请打开Addressables窗口,然后选择 Build > Build Player Content。
在这里插入图片描述

要使用API打包内容,请使用AddressableAssetSettings.BuildPlayerContent() ;
📀接下来会继续讲Addressable的详细用法,敬请期待吧📀


总结

欢迎大佬多多来给萌新指正,欢迎大家来共同探讨。
如果各位看官觉得文章有点点帮助,跪求各位给点个“一键三连”,谢啦~

声明:本博文章若非特殊注明皆为原创原文链接
https://blog.youkuaiyun.com/Wrinkle2017/article/details/120437067
————————————————————————————————

💢💢版权声明

版权声明:本博客为非营利性个人原创
所刊登的所有作品的著作权均为本人所拥有
本人保留所有法定权利,违者必究!
对于需要复制、转载、链接和传播博客文章或内容的
请及时和本博主进行联系
对于经本博主明确授权和许可使用文章及内容的
使用时请注明文章或内容出处并注明网址
转载请附上原文出处链接及本声明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值