网易首页 > 网易号 > 正文 申请入驻

可寻址资源系统功能更新,新增同步 API

0
分享至

Addressable Asset System 专为解决大型 Unity 项目的内容管理问题打造,其 Synchronous Addressables API 还能轻松将项目移植到灵活的可寻址系统中。

Addressable Asset System(简称 Addressables)是 Unity 首选的资源管理工具,可以安全、高效地完成资源和内存管理。Addressables 将资源的引用和打包分开处理,可加快运行模式下和运行版本的项目迭代。系统将资源合并为一个个的 Asset Bundles(资源包),一种可在运行时分发、加载资源的 Unity 专有文件结构,然后生成一个内容目录来辅助运行时的内容加载与资源跟踪。

Asset Bundles 可从内存中卸载不需要的内容。Addressables 加载采用了高层级的资产及依赖引用计数方式,可自动卸载不被使用的资源包及相关依赖。此外,系统还自带一个分析工具,可以实时查看资源与资源包的引用次数。

简单来说,Addressable Asset System 能以一定的规则来储存、划分游戏资源,实现快速的搜索、加载。与 Addressables 一道使用的还有 Cloud Content Delivery,一款线上游戏的资源托管和分发方案。本系统可以借助内容分发网络(CDN)将资源直接推送给玩家,不需要额外的代码支持。Addressables 和 CCD 组合使用可缩小游戏体积,在更新之际不必让玩家下载、安装新版本。

Addressable Asset System 可直接在 Package Manager 中安装,支持 Unity 2019 LTS 及以上版本。请参阅 Addressable Asset System 说明文档来快速入门,或者学习这篇“使用可寻址系统节省内存”(点击回看),本文根据 Professinal Service 成员 Patrick DeVarney 的工作经验编写而成。

Addressable Asset System说明文档:

https://docs.unity3d.com/Packages/com.unity.addressables@1.17/manual/index.html

现有异步行为

几乎所有 Addressables 的 API 都为异步行为,由用户控制运行时机,在运算完成时返回结果。这个控制开关就是AsyncOperationHandle

之所以围绕异步行为来设计系统,是因为当时我们的重心放在了移动端的 CDN 支持上,异步的 API 安全性较高,不论内容在哪都能运行。比方说如果我们想加载一个本地内容,但其依赖却托管在了一个远程位置上,如果异步加载物品可以很好地解决意料之外的内容下载。

但异步行为在其它项目中反而会变成约束。许多 Unity 用户开发的游戏不会有远程下载内容的需要,就算有也会自带精细的下载管理系统。随着用户群体不断成长、多样化,用户对同步行为 API 的需求也逐渐受到我们关注。

同步 API

我们于是新添了 Synchronous Addressables API,在 1.17.4 版的 Addressables 包中可以使用,兼容 Unity 2021.1、Unity 2020 LTS 和 Unity 2019 LTS。

在有了新的 API 后,项目不必调整为异步加载就能用上 Addressables了。同步行为在函数中以 AsyncOperationHandle 的 WaitForCompletion 方法表示,该方法会返回同步运算的结果。

正如前边提到,几乎所有现存的 Addressables API 都为异步行为,这些 API 所返回的也都是 AsyncOperationHandle。通过在类中添加 WaitForCompletion 方法,我们能让所有 API 在运行时都变为同步行为。

比如,我们可以先声明 Addressables.LoadAssetAsync(“MyPrefab”),返回 GameObject 运算的开关 AsyncOperationHandle。这时再声明 WaitForCompletion 会让系统阻拦代码执行,直到资源加载完成。在加载完成后,WaitForCompletion 便会返回代码请求的 GameObject。

异步和同步运算在完成后必须被释放。你可以释放算式本身,或在结果传入处进行释放。


void Start()//Basic use case of forcing a synchronous load of a GameObject(强制同步加载GameObject的基本用法)var op = Addressables.LoadAssetAsync("myGameObjectKey");GameObject go = op.WaitForCompletion();
//Do work...(运行……)
Addressables.Release(op);

潜藏的性能影响

在大部分实例中,同步加载的性能可比肩异步加载,但偶尔也会出现更快或更慢的情况,特定情况下会慢得多。

第一种是 Addressables 运行涉及大量引擎调用时,常出现在一次加载大量资源或体积庞大、依赖繁多的资源时。速度慢的原因是 Unity 2021.1 在以同步方式运行异步引擎接口时会在每次调用短暂停顿一下。这种停顿现象已在 2021.2 中移除,引擎目前处于 alpha 测试。

第二种是当 WaitForCompletion 在后台处理大型运算时,再调用其处理小型运算。WaitForCompletion 运算必须在引擎的任务队列中依次完成,如果小型运算的前头有一些大型运算,则只有前边的完成,系统才能完成队列后方的运算。

大家可以关注和 Addressable 配套的CCD 服务,二者结合可以帮助您快速构建资源更新系统,更多详情可以访问产品页:

https://unity.cn/product/cloud-content-delivery

也欢迎大家加入技术讨论群讨论相关问题,群号:550832645。

长按关注

Unity 官方微信

第一时间了解Unity引擎动向,学习最新开发技巧

每一个“在看”,都是我们前进的动力

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
最惨状元何川洋,高考659分被北大拒绝,北大:坚决不要这样的人

最惨状元何川洋,高考659分被北大拒绝,北大:坚决不要这样的人

吃鱼思故渊
2024-06-12 22:06:03
6月第2周了,2024年养老金调整通知何时公布?哪些人群涨钱更多?

6月第2周了,2024年养老金调整通知何时公布?哪些人群涨钱更多?

社保小达人
2024-06-12 12:38:49
燃油耗尽的客机飞向日本迫降遭日方拒绝,机长将一名男子踹出飞机

燃油耗尽的客机飞向日本迫降遭日方拒绝,机长将一名男子踹出飞机

梦里大唐
2024-06-12 17:51:34
女孩喊物业劝离门外陌生人,保安到场后女孩反被捅死,警方通报

女孩喊物业劝离门外陌生人,保安到场后女孩反被捅死,警方通报

鲁中晨报
2024-06-12 14:23:09
乘联分会5月汽车销量榜:比亚迪遥遥领先,特斯拉中国位列第三

乘联分会5月汽车销量榜:比亚迪遥遥领先,特斯拉中国位列第三

鞭牛士
2024-06-12 17:16:09
《制暴》新疆美女新人伊米娜太惊艳!魔鬼身材性感火辣

《制暴》新疆美女新人伊米娜太惊艳!魔鬼身材性感火辣

释凡电影
2024-06-12 21:00:03
北大才女李天乐高智商杀夫,耗时1周,让丈夫在幸福中死去

北大才女李天乐高智商杀夫,耗时1周,让丈夫在幸福中死去

一个人讲故事
2024-05-09 19:59:19
伤害了多少人!孤儿考生事件反转:当天吃过午饭,家境并不贫寒

伤害了多少人!孤儿考生事件反转:当天吃过午饭,家境并不贫寒

教育人看世界
2024-06-12 15:04:00
赖亚文回教练团是朱婷边缘化的开始,刁琳宇回应不给朱婷传球

赖亚文回教练团是朱婷边缘化的开始,刁琳宇回应不给朱婷传球

综艺拼盘汇
2024-06-12 20:26:28
徐将军,你认同“武将不怕死”吗?

徐将军,你认同“武将不怕死”吗?

吃瓜体
2024-06-04 19:42:50
离谱了!山东非私营单位平均工资107131元,评论区网友炸锅

离谱了!山东非私营单位平均工资107131元,评论区网友炸锅

文雅笔墨
2024-06-12 22:25:15
隐秘的欲望:修女们如何应对身体的需求以及修道院的生活

隐秘的欲望:修女们如何应对身体的需求以及修道院的生活

自由的饼干Pn
2024-06-12 08:03:40
苹果正式发布iOS18,续航信号双提升,前所未有的升级

苹果正式发布iOS18,续航信号双提升,前所未有的升级

花生评测
2024-06-12 10:05:31
尿毒症是喝出来的?医生告诫:即便是铁打的肾,这3种水也要少喝

尿毒症是喝出来的?医生告诫:即便是铁打的肾,这3种水也要少喝

莫将离
2024-06-01 23:41:40
董宇辉突发!非常痛苦!

董宇辉突发!非常痛苦!

天津生活通
2024-06-11 11:07:28
我花2万找小姐要求处女,在酒店以为遇到仙人跳,最后动了真心

我花2万找小姐要求处女,在酒店以为遇到仙人跳,最后动了真心

叶天辰故事会
2024-06-07 18:02:04
河北省民政厅回应“降低离婚率”:将拓展婚姻家庭辅导服务深度

河北省民政厅回应“降低离婚率”:将拓展婚姻家庭辅导服务深度

澎湃新闻
2024-06-12 16:04:27
尖嘴猴腮,大长脸,绿豆眼!这几位男星看似很帅,实际越看越怪!

尖嘴猴腮,大长脸,绿豆眼!这几位男星看似很帅,实际越看越怪!

咖啡店的老板娘
2024-06-11 21:44:45
美德宣布再援助2套爱国者防空系统,很快将有3套新的爱国者抵达

美德宣布再援助2套爱国者防空系统,很快将有3套新的爱国者抵达

山河路口
2024-06-12 11:41:03
撒贝宁一家四口开豪华房车,千岛湖露营,网友:像卡车一样带劲

撒贝宁一家四口开豪华房车,千岛湖露营,网友:像卡车一样带劲

柠檬有娱乐
2024-06-11 09:50:38
2024-06-13 07:12:49
Unity
Unity
Unity中国官方帐户
2131文章数 6700关注度
往期回顾 全部

科技要闻

谁是苹果AI的“中国合伙人”?

头条要闻

顶头上司落马3周后退休副省长被查 任内曾被环保问责

头条要闻

顶头上司落马3周后退休副省长被查 任内曾被环保问责

体育要闻

国足,别辜负这场奇迹!

娱乐要闻

黄一鸣再次录视频表态孩子是王思聪的

财经要闻

徽商银行的影子 借基金向地方城投放贷?

汽车要闻

理想汽车周销量突破1万辆 单周销量首超宝马奥迪

态度原创

健康
艺术
数码
房产
公开课

晚餐不吃or吃七分饱,哪种更减肥?

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

数码要闻

部分采用 N3B,英特尔 Arrow Lake-U/H/HX 移动处理器现身海关

房产要闻

今日正式执行!海南下调房贷利率!暂不涉及存量贷款!

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版