YooAsset icon indicating copy to clipboard operation
YooAsset copied to clipboard

跟Addressable相比没有什么优势

Open PotatoFarmer1988 opened this issue 2 years ago • 20 comments

详细看了下,个人观点,仅供参考。 这个插件有的功能Addressable都有,Addressable有的功能它还没有,比如事件调试器; API也没有Addressable简单,比如Addressable1个API可以实现它3个API的功能。 对async和UniTask的支持也不好,Addressable自身支持async,而UniTask又自身支持Addressable,这个项目是自身支持UniTask,有点食物链上下游的感觉。

PotatoFarmer1988 avatar Aug 02 '22 03:08 PotatoFarmer1988

你在胡说什么?

LiuOcean avatar Aug 02 '22 03:08 LiuOcean

http://www.liuocean.com/2022/06/24/wei-shen-me-pao-qi-le-addressable/

这篇文章上的内容, AA 的问题目前解决了吗?UniTask 官方支持了 AA,这个没错,但是你读过里面的代码嘛?UniTask 中对 AA 本身的 progress 的进度获取就是错的,当前的进度 = 已经下载的文件数量 / 总体的文件数量。

而且 UniTask 本身设计成这样子就是为了方便后续扩展,对 YooAsset 的扩展支持也完全符合 UniTask 本身的设计初衷,又谈何食物链上下游?

AA 里的事件调试器,对应的就是 debug 工具,YooAsset 也支持

LiuOcean avatar Aug 02 '22 03:08 LiuOcean

AA官方没解决,可以自行扩展或修改解决。 官方源码架构比较好,阅读起来也挺容易,扩展起来没遇到难点,你说的这些问题目前都已解决或能解决。总比自己重新造轮子强。 另外下载进度= 已经下载的文件数量 / 总体的文件数量。这个在AA官方文档里有详细说明,其实是有2种,UniTask只实现了其中一种,不是什么影响选择的大问题。 我说的都是我看到的东西,和感受的东西,没有任何一条胡说吧?一上来就怼别人,素质有待加强,虽然开源精神不错~

PotatoFarmer1988 avatar Aug 02 '22 03:08 PotatoFarmer1988

如果 issue 本身有理有据,没啥问题。这条 issue 本身就是完全不了解 YooAsset 的主观恶意偏见,对你自然没有好态度。而且UniTask 进度问题是因为最开始 AA 压根就没有 下载 size 的进度,后续版本才加上来的,这条本身就是误导开发者。

不要抛下 AA 核心问题视而不见,你喜欢用 AA,自己用就好了,并不是你轻飘飘一句 自行扩展或修改就能解决掉的。

LiuOcean avatar Aug 02 '22 03:08 LiuOcean

既然敢开源,就要敢接受质疑,不要怼天怼地的。你做的很好,自然会有人用,甚至被官方收购。不是怼出来的。

PotatoFarmer1988 avatar Aug 02 '22 03:08 PotatoFarmer1988

接受的是合理的质疑,而不是无端揣测和恶意评论。不要张嘴就来。

LiuOcean avatar Aug 02 '22 03:08 LiuOcean

我不是 YooAsset 的作者,只是看不惯这种张嘴就来的评论。

LiuOcean avatar Aug 02 '22 03:08 LiuOcean

唉。祝好。

LiuOcean avatar Aug 02 '22 03:08 LiuOcean

您好,我是YooAsset的原创作者。YooAsset是开源只有半年的一款资源管理插件,还有很多不足和需要完善的地方,如果您觉得有什么不好的地方或者需要改善的地方可以提issue或者进群大家一起讨论。

  1. 这个插件有的功能Addressable都有,Addressable有的功能它还没有,比如事件调试器; YooAsset是提供了Debug调试器的,可以帮助查看是否有资源泄漏的问题,不过还不够完善,后面还要增加载入耗时和内存统计。以及帧数据对比,帧数据导出等等。 事物辩论是双向的,YooAsset有的,Addressable它也没有,例如:UIElements编写的界面,着色器变种收集器,同时支持内置构建管线和可编程构建管线,支持着色器统一收集机制,,原生文件下载和管理,基于资源对象的资源包依赖管理方案(这个是YooAsset独有的),太多了就不一一列举了。

  2. API也没有Addressable简单,比如Addressable1个API可以实现它3个API的功能。 YooAsset全局只提供了一个静态类来给开发者使用,基于API是只做一件事情好,还是同时可以做三件事情好,就仁者见仁了。

  3. 对async和UniTask的支持也不好 澄清一点,YooAsset自身也支持异步编程的,而且还很方便的扩展一下就可以支持UniTask, ETTask。AA是Unity官方的插件库,被UniTask支持我觉得一点也不奇怪。

另外我想官方既然提供了这么好用的资源管理插件,为什么市面上还涌现出那么多开源的资源插件库呢,例如:YooAsset, XAsset, CatAsset, BundleMaster, ABSystem,还有很多优秀的开源框架也内置了自己的资源管理系统。我觉得这个问题非常有意思。

gmhevinci avatar Aug 05 '22 03:08 gmhevinci

详细看了下,个人观点,仅供参考。 这个插件有的功能Addressable都有,Addressable有的功能它还没有,比如事件调试器; API也没有Addressable简单,比如Addressable1个API可以实现它3个API的功能。 对async和UniTask的支持也不好,Addressable自身支持async,而UniTask又自身支持Addressable,这个项目是自身支持UniTask,有点食物链上下游的感觉。

"详细看了一下",但说出的东西暴露了你的傲慢和无知,兄弟

AILHC avatar Aug 13 '22 08:08 AILHC

aa也并没有那么完美吧,我从上个月初开始接ab资源热更时开始接触aa,unity2021.3.6版本的aa是1.19.19版本,使用起来感觉并不是很稳定,尤其是使用同步加载接口WaitForCompletion的时候,在同步加载一个本地已缓存资源时会直接报错,而且错误信息也很难懂,在论坛提问后被认定为是这个版本的bug: https://forum.unity.com/threads/error-when-loading-prefab-using-waitforcompletion-method.1350545/ 之后还遇到一个问题如这篇博客所写: https://blog.csdn.net/cc_shan/article/details/125976078 后续又发现包体随着更新可能会越来越大,官方提供的接口CleanBundleCache并没有立刻清除本地没用的资源,同样的论坛提问: https://forum.unity.com/threads/cleanbundlecache-doesnt-seem-to-clear-old-assets.1285892/ 但是并没有收到官方的回复,UWA上倒是有相关讨论: https://answer.uwa4d.com/question/5ee9ea195d07d80acd262421 不过折腾了一番当时记得这个解决方法不是很好用,具体细节已经记不大清了。在这之后各种杂七杂八的问题都在论坛有看到过,最后压垮我的最后一根稻草是这篇帖: https://forum.unity.com/threads/my-addressables-bug-reports-and-questions-collection.1135966/ 我承认我的水平比较菜,遇到问题会先去论坛寻找解决方法而不是直接看源码自己改,但是至少作为官方插件且被标记为release版本,一般在编写demo的时候应该不会遇到太多的问题,但当时用下来给我的感觉就是aa在最初完全就是按照异步页游那样的思想去写的,后续才关注到玩家需要怎样怎样的资源管理,然后在后续版本慢慢打补丁,于是就会出现一些bug。我并不站队aa或者YooAsset,只是在放弃aa后尝试用了下这个插件确实很快速的完成了demo,并且资源管理这块不再是令我头痛的问题了,当然也可能是我对aa的理解并不够深入,如果上述问题确实有解决方法的话也欢迎指正交流,我只是看到这个issue突然有些感悟所以写了这么多,其实也就是想表达一下尝试接入aa失败之后转到YooAsset的苦逼打工仔的心路历程:joy:

a549297336 avatar Nov 16 '22 08:11 a549297336