当前位置: 首页 > news >正文

Unity开发——XLua热更新之Hotfix配置(包含xlua获取与导入)

一、Git上获取xlua

最新的xlua包,下载地址链接:https://github.com/Tencent/xLua

二、Unity添加xlua

解压xlua压缩包后,将xlua里的Assets里的文件直接复制进Unity的Assets文件夹下。

成功导入后,unity工具栏会出现xlua选项。

 注:如果只是本地简单xlua与Unity/C#交互的话,完成该步就可以正常在使用。

三、hotfix环境配置

XLua的Hotfix用于实现对Unity代码修复与补丁更新

1、添加/打开使用Hotfix实现修复与补丁的宏:

如果不打开,部分方法无法使用。打开路径:

File->Build Setting->Player Settings->Player->otherSettings->Scriptsing Define Symbols

添加输入:HOTFIX_ENABLE        按Enter键回车或Apply按钮点击确认,等待编译。

成功打开编译后,工具栏XLua项多出Hotfix选项,就可以把写好的lua代码注入到C#程序集中了。

 

 2、初始可能存在的报错的解决方案:
(1)报错1:首次运行Hotfix项目时报no field错误

LuaException:xlua.access,no field__Hotfix0_Update stack traceback;

导入xlua后,找到xlua的example里的08_Hotfix项目,直接运行HotfixTest场景时会报该错误。

出现原因:修改补丁时,未对项目里的lua代码进行代码生成和注入到编辑器中的两个步骤;

解决方法:

1)生成一下之前写好的Lua代码:XLua->GenerateCode;

如果当前项目中有任何一个C#脚本进行了更改,都需有点击GenerateCode重新生成下代码。

2)把生成好的代码注入到编辑器中:Xlua->Hotfix Inject In Editor;

注:可能存在生成代码或注入到编辑器里失败的情况,上面两个操作点击执行后,等console面板finish提示标记表示编译成功后,再进行下一步操作。没有标记提示,需要重新生成代码。

(2)报错2:执行Hotfix Inject In Editor操作时,可能会出现报错:please install Tools

解决方法:

1)将xlua文件里的Tools文件复制到项目中。

2)重新生成代码:XLua->GenerateCode;

3)重新注入到编译器中:Xlua->Hotfix Inject In Editor;

注:1)Tools文件在xlua里是和Assets是同级文件,这里复制到项目中也注意层级。

后续需要复制其他xlua文件里的对象也同样注意层级位置。

2)建议文件夹里复制,直接拖进Unity里是放到Assets文件夹下,该操作也会报错。

Tools复制进Unity里,unity的Project面板下没有显示Tools文件夹。这是正常的,也不要以为没复制成功。

(3)报错3:执行Hotfix Inject In Editor操作时,可能会出现WARNING提示;

WRANING:The runtime version supported by this application is unabailable.

解决方法:

1)检查下三个dll配置文件有没有导入:

①查找配置文件,Unity安装目录下:Unity->Editor->Data->Managed:三个Ceci文件

Unity.Ceci.pdb.dll,Unity.Ceci.Mdb.dll,Unity.Ceci.dll;

②复制配置文件到项目:Assets->XLua->Src->Editor里;

③打开项目等待编译后,点击执行XLua->GenerateCode,然后再执行Hotfix Inject In Editor

2)若还存在警告,可能因为xlua放置目录路径存在中文,中文乱码未识别导致警告。

①重命名对应的文件夹名;修改项目文件名后,重新打开项目;

②先GenerateCode生成代码,再Hotfix Inject In Editor注入到编辑器中;

注入成功同生成代码成功一样,都是报finish提示

http://www.lryc.cn/news/357272.html

相关文章:

  • Qt 基于FFmpeg的视频转换器 - 转GIF动图
  • HTML新春烟花盛宴
  • 第十四届蓝桥杯c++研究生组
  • KDD 2024|基于隐空间因果推断的微服务系统根因定位
  • 白鹭群优化算法,原理详解,MATLAB代码免费获取
  • 【源码】2024完美运营版商城/拼团/团购/秒杀/积分/砍价/实物商品/虚拟商品等全功能商城
  • Java-数组内存解析
  • Spring Cache --学习笔记
  • NTP服务的DDoS攻击:原理和防御
  • 【面试干货】事务的并发问题(脏读、不可重复读、幻读)与解决策略
  • 函数式接口:现代编程的利器
  • 2022职称继续教育--深入实施新时代人才强国战略 加快建设世界重要人才中心和创新高地
  • kube-prometheus-stack 识别 k8s 集群内所有的 ServiceMonitor 和 PrometheusRule
  • Android 图片加载glide库 一次通关
  • Spring OAuth2:开发者的安全盾牌!(上)
  • 设计模式使用(成本扣除)
  • 输入输出(2)——C++的标准输出流
  • C语言序列化和反序列化--TPL(一)
  • Session + JWT + Cookie
  • PaddleOCR2.7+Qt5
  • 在Android中解析XML文件并在RecyclerView中显示
  • Notes for video: EDC-Con 2022/01 - EDC Conceptual Overview and Architecture
  • windows下nginx配置https证书
  • Llama改进之——RoPE旋转位置编码
  • Python的解析网页
  • VBA技术资料MF159:实现某个区域内的数据滚动
  • 开源DMS文档管理系统 Nuxeo Vs Alfresco对比及 API 使用概述
  • lambda函数实践
  • [leetcode hot 150]第一百九十一题,位1的个数
  • gitea的git库备份与恢复