xlua入门

发布于 2021-01-05  5 次阅读


前言

最近的bug都是我这边用xlua做热更新。

lua语法

xlua肯定要先懂点lua语法
lua语法和C#有一些的不同
比如调用方法是:
静态方法调用是.

C# lua
!= ~=
or
&& and
! not
+""+ ..""..
else if elseif

for

for循环有一个pairs 和ipairs

  • pairs 类似 foreach
  • ipairs 类似 for

匿名方法

self.btn_HeroDetails.onClick:Set( function()
            -- todo--
end)

万物皆table

table是lua的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。

  • table.insert() 插入元素
  • table.remove() 移除元素
  • table下标是从1开始

Xlua环境部署

Xlua官网:https://github.com/Tencent/xLua

  • assets文件夹下所有东西全部拷贝到自己文件夹下
  • unity输入宏HOTFIX_ENABLE
  • 运行08_Hotfix场景

测试

  • XLua-->Generate Code 编译lua并生成Generate库
  • XLua-->Clear Generate Code 清除生成的Generate库
  • Hotfix Inject In Editor 把C#代码生成新dll

XLua代码修复

通过new LuaEnv 来加载目录

BugFix.bytes

require 'BugFix/TestFix'

TestFix

xlua.hotfix(CS.TestFix,"FunctionName",function(self)
--todo
//调用C#
CS.域名.类名.方法
end)


不积跬步,无以至千里;不积小流,无以成江海。