Unity C#与Xlua的交互 C#调用Lua CSharpCallLua

最近学习XLua,看了下官方的文档。对于我这样的小菜鸡而言需要知道的知识点还是蛮多的,就做个笔记,其实差不多等于把文档里面的知识ctrl C ctrl V一遍。正在准备学习这块的小伙伴们可以多看看官方给的文档。下面是自己的一个GitHub XLua Demo 地址。里面也存放了文档(XLuaDocs文件夹中)

这篇主要记录记录C#与XLua的相互交互,即C#如何访问调用Lua的属性方法和Lua如何调用C#的。对应的文档是《xLua教程》

注:本文一些XLua API和XLua标签等知识会在后面的文章慢慢整理,这边就不细说了。对应的官方文档里面大家也可以找到。

CSharpCallLua

CSharpCallLua,顾名思义CS里面去调用访问Lua代码里面的属性方法。对应的官方Demo为“CSharpCallLua”。


访问全局基本数据类型

假如我在Lua中定义了下面三个变量:

a = 1
b = 'hello world'
c = true

那么我们只需要通过luaenv.Global.Get<T>(name)就可在C#中访问这几个变量,如下:

LuaEnv luaenv = new LuaEnv();

Debug.Log("_G.a = " + luaenv.Global.Get<int>("a"));
Debug.Log("_G.b = " + luaenv.Global.Get<string>("b"));
Debug.Log("_G.c = " + luaenv.Global.Get<bool>("c"));

访问全局table

比如我在Lua中定义了如下的一个table:

d = {
   f1 = 12, f2 = 34, 
   1, 2, 3,
   add = function(self, a, b) 
      print('d.add called')
      return a + b 
   end
}

方法1:将table映射到一个c#的class或struct中

我们可以定义一个class,将lua中的table里面的字段(即键值对的键&#x

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值