栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

【Unity】Addressable 整个文件夹标注名称后,加载资源出错的问题UnityEngine.AddressableAssets.InvalidKeyException

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Unity】Addressable 整个文件夹标注名称后,加载资源出错的问题UnityEngine.AddressableAssets.InvalidKeyException

使用版本

Unity : 2020.3.0f1
Addressable:Version 1.16.10 - November 12, 2020

【2020.4.15】 增加该报错下第二种诡异的方式

问题描述1

一个常见的使用场景,图放在文件夹下,在程序中的置换使用
整个文件夹勾选Addressable

例如:文件夹 TestA Addressable的命名也为TestA
文件夹内存放Sprite 名称为 TestA_0001.png

AddressableGroup内的显示

代码内 使用LoadAssetAsync加载 “TestA/TestA_001.png”
报错:

Exception encountered in operation CompletedOperation, status=Failed, result= : Exception of type ‘UnityEngine.AddressableAssets.InvalidKeyException’ was thrown., Key=…

问题解决1

排除了众多设置问题之后,我尝试把Sprite拷贝出来,重新放新文件夹导入。
然后还没做什么呢,突然就好使了。

探究了一下问题的发生,结果发现 问题出现在

LoadAssetAsync加载"TestA/TestA_001.png" 这一部分上面。

新的文件夹内加载的情况类似于:

LoadAssetAsync加载"TestB/TestA_001.png"

这个加载成功了!
Addressable的分组、Sprite的设置都没有变过,这样就突然好了。

那么推测问题,就是文件夹名称,完全是Sprite名字的substring(或者说子集)

后经过测试,果然加载"TestA_/TestA_001.png" 同样报错
加载"TestA_1/TestA_001.png" 正常加载

其他更多我也没有做测试了。

问题描述2

整个文件夹勾选Addressable后,给这个文件夹的Addressesable起了别名(我习惯叫做别名,就是Addressable后,可以重新起名的功能)。
比如文件夹叫做 testRes(小写打头)别名编写为 TestRes(大写)
资源加载的代码写作:“TestRes/xx.png”
报错:UnityEngine.AddressableAssets.InvalidKeyException

问题解决2

实例中,文件夹名字和别名统一后用小写加载可以加载的到。
资源加载的代码写作:“testRes/xx.png”

即推测:文件夹的Addressesable别名加载很可能是不好使的
如果遇到问题可以尝试不给文件夹起别名,文件夹名和Addressable名字统一之后进行佳佳

请各位对照自己的情况 酌情修改。

转载请标注 出自喵喵丸的Blog

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/906420.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号