
xLua热更新
xLua热更新
两水先木示
有时候,你不知不觉就完成了一个BUG!
展开
-
LuaException: [string “chunk“]:1: attempt to call a nil value (global ‘require‘)
attempt to call a nil value (global 'require')原因:luaTable没有正确赋值元表metatable,或元表__index参数没有正确赋值luaEnv.Global。原创 2025-01-07 19:14:50 · 328 阅读 · 0 评论 -
【xLua】xLua-master签名、加密Lua文件
userLoader就是进入到我们在实例化SignatureLoader时传入的第二个参数(一个委托对象),委托执行了加载原文件字节数组、解密操作,而load_and_verify函数是先进行的userLoader,拿到解密后的byte[]再进行签名解码,所以只能先签名文件、后加密文件,对应先解密文件,后解码签名。是我自定义的提供外部解码byte[]的,需自行加载文件原始byte[],以及传入lua文件相对路径(不带.lua后缀)实际也可以写个不用传路径的方法,因为只是用来警告提示的。原创 2025-01-07 19:09:02 · 797 阅读 · 0 评论 -
xLua require not find 问题
xLua require文件寻找不到问题,但文件缺失存在,只是路径搜不到了原创 2021-12-18 21:37:14 · 771 阅读 · 0 评论 -
【Lua坑】浮点数问题
浮点数精度问题:例如:local number = 0, 一直加一个分数例如 1/3 ,现实情况中 1/3 * 3 = 1,但是计算机会识别为 1/3 = 0.3333333... 然后这3个数相加,得出0.9999999999... 因此 1/3 * 3 近似等于1此时如果你代码写了 number >= 1.0 是不成立的, 但是你打印的number 却是 1.0, 因为lua的打印会将 0.9999999...四舍五入为 1.0 打印出来给你看。真实数据打印方法可以用 m...原创 2021-02-04 11:27:09 · 2965 阅读 · 0 评论 -
【Lua坑】IntelliJ IDEA编辑器的智能提示相关问题
---@class 子类名 : 父类名local 子类名 = class("子类名", 父类名)return 子类名注意:---@class 子类名 : 父类名 必须在local 子类名那一行之上,不能隔空行,隔开空行都会导致无法正确提示父类成员。即---@class无效类似其他的---@ 也要注意这种问题,---@xxx 就是用于修饰某个变量的,如果隔开空行可能会无效。例如你这样子写就无效了。---@class 子类名 : 父类名local 子类名 = class("子类名",.原创 2021-02-04 11:22:41 · 468 阅读 · 0 评论 -
【xLua坑】使用#和table.count的区别
概念:1、table是顺序表,即 { [1] = 1, [2] = 2, ...} 或 { 1, 2, ...}2、table是哈希表时,即 { ["a"] = 1, ["b"] = 2, ...} 或 { a = 1, b = 2 }-- 计算哈希表长度local function count(hashtable) local count = 0 for _,_ in pairs(hashtable) do count = count + 1 end return count.原创 2021-01-30 11:09:03 · 1185 阅读 · 0 评论 -
【xLua坑】使用pairs和ipairs的区别
1、当你的table是顺序表,即 { [1] = 1, [2] = 2, ...} 或 { 1, 2, ...} 时,#和table.count都可使用2、当你的table是哈希表时,即 { ["a"] = 1, ["b"] = 2, ...} 或 { a = 1, b = 2 }时,不能使用#,只能使用table.counttable.count方法是遍历哈希表计数返回,如下所示:-- 计算哈希表长度local function count(hashtable) local count原创 2021-01-30 10:56:50 · 711 阅读 · 0 评论 -
【xLua坑】require执行顺序问题
xlua的require执行顺序 很重要。xlua的require执行顺序 很重要。xlua的require执行顺序 很重要。xlua的require执行顺序 很重要。xlua的require执行顺序 很重要。目前经常遇到的问题是,require 子类 再require 基类 会导致子类无法识别出父类,从而各种报空问题,因为父类的方法没执行到!!!!!!!!...原创 2021-01-25 20:43:42 · 649 阅读 · 3 评论 -
【Unity】XLua巨坑汇总
一、拓展方法未生效问题最近在使用GameFramework框架,并且接入了xlua,在xlua的一开始Init.lua 我使用如下代码获取了一个全局类声明GameEntry = CS.StarForce.GameEntry 注意:Init.lua是游戏启动Lua时最先执行的lua文件用于require其他lua文件的接着我在各种UI使用它,遇到了无论我怎么检查都已经引入所有类型到Lua了(即LuaCallCSharp列表里),在我使用如下代码报错。GameEntry.Sound:.原创 2020-11-17 00:50:58 · 1461 阅读 · 0 评论 -
XLua——生成Wrap文件报错解决方案和注意事项
目录一、将报错的类从白名单去除二、将报错的类的成员(指方法、字段或属性)写入黑名单三、特殊Wrap(泛型相关)的报错(暂时未遇过)四、注意事项一、将报错的类从白名单去除找到配置白名单列表生成wrap的脚本,如下代码段为“白名单”[LuaCallCSharp]public static readonly List<System.Type> LuaCallCSharp = new List<System.Type>(){ typeof(Syste原创 2020-11-11 00:09:43 · 3191 阅读 · 0 评论 -
xLua热更新总结
一、xLua配置方法:xlua的迁入与hotfix的环境配置上GitHit找到xLua压缩包xLua-master.zip解压后,进入Assets文件夹将里面的东西全部复制粘贴到工程的Assets文件夹下。然后,还要把xLua-master里的Tools文件夹 整个复制粘贴到 工程Assets文件夹的同级目录下。进入Unity将PlayerSettings里面的OtherSettings...原创 2018-06-18 19:06:24 · 3805 阅读 · 1 评论 -
Lua知识
一、Lua是什么? Lua 是一个小巧的脚本语言。其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。很多应用程序、游戏使用LUA作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括魔兽世界、博德之门、愤怒的小鸟、QQ三国、VOCALOID3、太阳神三国杀、游戏王ygocore等。二、Lua环境安装Window 系统上安装 Lua window下你可以...原创 2018-06-20 23:49:48 · 2270 阅读 · 3 评论