【Unity实战|热更】Addressable读取SO文件报错解决

情景再现

假定你有一个Unity工程,使用了HybridCLR和Addressable,SO文件存放在Addressable中。热更加载后进入游戏场景出现了SO文件读取报错:

UnityEngine.AddressableAssets.InvalidKeyException: Exception of type 'UnityEngine.AddressableAssets.InvalidKeyException' was thrown. No Asset found with for Key=Inventory Model Database. Key exists as Type=System.Object, which is not assignable from the requested Type=InventorySystem.Models.InventoryModelDatabase
UnityEngine.AddressableAssets.Addressables:LoadAssetAsync(Object)

可能原因

读取SO文件时,文件绑定的脚本并没有成功还原出来。见官方文档。

解决办法

加载SO文件的代码时不要声明具体的类型,改用System.Object,成功后进行强转。

Before:

Addressables.LoadAssetAsync<InventoryModelDatabase>("Inventory Model Database").Completed += handle =>{if (handle.Status == AsyncOperationStatus.Succeeded){_inventoryModelDatabase = handle.Result;Debug.Log($"[{GetType()}] Inventory Model Database loaded!");}elseDebug.LogError($"[{GetType()}] Failed to load Inventory Model Database!");};

After:

Addressables.LoadAssetAsync<System.Object>("Inventory Model Database").Completed += handle =>{if (handle.Status == AsyncOperationStatus.Succeeded){_inventoryModelDatabase = handle.Result as InventoryModelDatabase;Debug.Log($"[{GetType()}] Inventory Model Database loaded!");}elseDebug.LogError($"[{GetType()}] Failed to load Inventory Model Database!");};

问题解决。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/8962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android RecyclerView

RecyclerView核心实现官方文档 Once you determine your layout, you need to implement your Adapter and ViewHolder. These two classes work together to define how your data is displayed. The ViewHolder is a wrapper around a View that contains the layout for an…

SAP sq01,sq02,sq03创建query报表

步骤&#xff1a;1&#xff0c;SQ03创建用户组&#xff08;User Group&#xff09; 2&#xff0c;SQ02创建信息集&#xff08;InfoSet&#xff09; 3&#xff0c;SQ03分配用户和InfoSet 4&#xff0c;SQ01创建查询 5&#xff0c;SE93给Query分配Tcode 1&#xff0c;SQ03创建用…

IMX6Ull驱动学习-“原汁“kernel

1、拷贝一份deconfig文件 拷贝一份defconfig文件 cd arch/arm/configs cp imx_v7_mfg_defconfig pan_emmc_defconfig注释掉CONFIG_ARCH_MULTI_V6选项&#xff0c;不然会影响之后驱动开发 CONFIG_ARCH_MULTI_V6y使用自己的defconfig文件编译内核 make pan_emmc_defconfig2、…

ifconfig命令找不到 command not found

问题 今天解决虚拟机的网络问题后&#xff0c;使用ifconfig发现报错命令未找到 解决方案 输入yum install ifconfi的程序安装包 yum install ifconfig 如果显示没有可用软件包 ifconfig&#xff0c;错误&#xff1a;。 就输入yum search ifconfig匹配安装包程序 yum searc…

Android WebView打开网址黑屏

1.先说解决方案&#xff1a; // 允许执行JavaScriptbinding.webView.getSettings().setJavaScriptEnabled(true);// 启用硬件加速binding.webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);// 允许混合内容。即使是通过HTTPS加载的页面也可以显示通过HTTP加载的资源。bin…

2024好用的4款3D雕刻软件,快来拿走

3D 雕刻是一种让角色、怪物或任何有机形状栩栩如生的方法。您可以将其视为由粘土制成的真实模型&#xff0c;并可以根据您的意愿推、拉、平滑、抓住或捏它以创建其最终形状。3d 雕刻有哪些软件好用&#xff1f;3d 雕刻软件对电脑要求高吗&#xff1f;电脑带不动3d软件怎么办&am…

【隧道篇 / WAN优化】(7.4) ❀ 03. WAN优化的原理 ❀ FortiGate 防火墙

【简介】相信对WAN优化感兴趣的人都会有疑问&#xff0c;WAN优化真的有作用吗&#xff1f;如果真的有作用&#xff0c;那是根据什么原理呢&#xff1f;让我们来更深入的了解一下。 客户端和服务器端 其实很多人在一开始看到WAN优化这个词&#xff0c;就自然的以为上网速度太慢&…

How Linux Works I - How Linux Start Up

目录 Linux如何启动&#xff1f; 启动信息 内核启动初始化与启动选项 写在前面&#xff1a;上一个专栏中我写完了内核源码层面看Linux&#xff0c;我们把抽象层拉高一点&#xff0c;看看Linux是如何工作的&#xff01; Linux如何启动&#xff1f; BIOS&#xff08;Basic Inpu…

linux基础命令第二篇

雷迪斯and the乡亲们 欢迎你们来到 奇幻的编程世界 8.history命令 作用&#xff1a;查看和控制历史命令纪录 保存位置&#xff1a;&#xff1a;~/.bash_history &#xff08;1&#xff09;在启动终端的时候&#xff0c;会自动从&#xff1a;~/.bash_history 中读取历史命令…

端口复用详解

2、多线程并发服务器的步骤 1 #include <stdio.h> 2 #include <sys/socket.h>//socket 3 #include <netinet/in.h>//struct sockaddr_in 4 #include <arpa/inet.h>//inet_pton inet_addr 5 #include <string.h>//bzero 6 #include <stdlib.h…

AUTOCRAWLER : A Progressive Understanding Web Agent for WebCrawler Generation

AUTOCRAWLER&#xff1a;用于生成 WebCrawler 的渐进式理解 Web 代理 Fudan University;Alibaba Holding-Aicheng Technology-Enterprise Abstract&#xff1a; 网络自动化是一项重要技术&#xff0c;它通过自动化常见的网络操作来完成复杂的网络任务&#xff0c;提高效率并…

【优选算法】——双指针——15. 三数之和

目录 1.题目 2.解法&#xff08;排序双指针&#xff09;&#xff1a; 算法思路&#xff1a; 3.代码实现 1.题目 15. 三数之和 提示 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足…

Clickhouse判断是否在范围中

isIPAddressInRange a表 name range id ------- 美国 ‘172.10.1.1/24’ 1 b表 ip name 172.10.11.2 test 现在去判断b表中的test是在哪个范围 isIPAddressInRange(a.ip, b.range) 判断是否为IPv4还是IPv6 isIPv4String isIPv6String 转换IP toIPv4 toIPv4OrDefault(s…

RT-Thread移植到STM32F407

1、获取RT-Thread源码 首先到rtthread官网下载rt-thread nano后解压 解压后打开后内容如下。 2、系统结构 各文件夹的作用如下&#xff1a; Rt-Thread-nano源码结构 文件夹描述bsp板级支持包components/finshRT-Thread组件docs文档信息include头文件libcpu/arm与arm处理器相…

根文件系统的其他测试

文章目录 一、hello测试程序编写二、程序后台运行1.在后台运行方法2.中文显示测试3.开机自动启动测试 一、hello测试程序编写 &#x1f4a6;我们使用 Linux 的目的就是运行我们自己的软件&#xff0c;我们编译的应用软件一般都使用动态库&#xff0c;使用动态库的话应用软件体…

vue 钩子函数updated什么时候触发

触发时机 updated是Vue生命周期钩子函数之一&#xff0c;在组件的数据变化导致虚拟DOM重新渲染并应用到实际DOM之后触发。具体来说&#xff0c;updated会在以下几种情况下被触发&#xff1a; 初始渲染完成后&#xff1a;当组件首次渲染完成并将虚拟DOM渲染到实际DOM之后&#…

获取两个时间之间的月份

工具类 public static List<String> getMonthBetweenDate(Date startDate, Date endDate) {ArrayList<String> result new ArrayList<String>();SimpleDateFormat sdf new SimpleDateFormat("yyyy.MM");//格式化&#xff0c;调整为自己需要的格…

摩菲Murphy显示器显示表 总线编程器维修PV780B

Murphy仪器维修包括&#xff1a;摩菲数字显示器&#xff1b;摩菲监视仪表&#xff1b;摩菲CAN总线控制器等维修 维修故障包括&#xff1a;黑屏、指示灯无显示&#xff0c;触摸屏上电无反应&#xff0c; 上电蓝屏、白屏&#xff0c;通电几分钟后屏幕变为蓝屏&#xff0c;主板故…

班级综合测评|基于Springboot+vue的班级综合测评管理系统(源码+数据库+文档)

目录 基于Springbootvue的“智慧食堂”系统 一、前言 二、系统设计 三、系统功能设计 1 管理员功能模块 2学生功能模块 3教师功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大…

应用系统集成企业微信的技术方案和最佳实践

本文以springbootvue技术开发的低代码平台为案例&#xff0c;介绍应用系统如何集成企业微信&#xff0c;包括同步企业微信组织用户、单点登录、消息发送等。 在线体验&#xff1a;http://www.yunchengxc.com 1、准备应用 1.1、注册企业微信账号 作为企业微信的企业管理员&a…