using System;
using System.Collections.Generic;
using System.Text;
using LuaInterface; // lua 封装库
namespace lua_test
{
class MyClass // 自定义类
{
public string MyStr(string s) // 自定义功能函数
{
return s + " World !";
}
}
class Program
{
public static Lua m_lua = new Lua(); // 创建lua虚拟机
static public void init()
{
MyClass my = new MyClass(); // 创建自定义类 实例
// 在lua虚拟机(全局)中注册自定义函数,一边在lua文件中调用该函数
m_lua.RegisterFunction("MyStr", my, my.GetType().GetMethod("MyStr"));
m_lua.DoFile("lua_test.lua"); // 加载lua文件(绝对路径)
}
static void Main(string[] args)
{
init();
// 加载乱文件后,使用GetFunction获取函数,再调用Call执行(传参数)
object[] objs = m_lua.GetFunction("MyNum").Call(100);
// Call函数的返回值为一个object数组
}
}
using System.Collections.Generic;
using System.Text;
using LuaInterface; // lua 封装库
namespace lua_test
{
class MyClass // 自定义类
{
public string MyStr(string s) // 自定义功能函数
{
return s + " World !";
}
}
class Program
{
public static Lua m_lua = new Lua(); // 创建lua虚拟机
static public void init()
{
MyClass my = new MyClass(); // 创建自定义类 实例
// 在lua虚拟机(全局)中注册自定义函数,一边在lua文件中调用该函数
m_lua.RegisterFunction("MyStr", my, my.GetType().GetMethod("MyStr"));
m_lua.DoFile("lua_test.lua"); // 加载lua文件(绝对路径)
}
static void Main(string[] args)
{
init();
// 加载乱文件后,使用GetFunction获取函数,再调用Call执行(传参数)
object[] objs = m_lua.GetFunction("MyNum").Call(100);
// Call函数的返回值为一个object数组
}
}
}
lua文件(lua_test.lua)内容:
function MyNum(i)
s = MyStr("Hello");
return i,s;
end
执行完后 objs 中 2 个值 为100 和 Hello World !
传参数:
string[] aa = { "aaa","bbb","111"};
GameObject go = new GameObject();
go.name = "abcdef";
object[] objs = luaMgr.lua.GetFunction("callClass").Call(go);
GameObject go = new GameObject();
go.name = "abcdef";
object[] objs = luaMgr.lua.GetFunction("callClass").Call(go);
function TestParam(a,b,len)
--local meta = getmetatable(b)
--print(a)
--print(meta)
for i = 0, len - 1 do
print(b[i])
end
end
function callClass(Obj)
print(Obj.name);
end
--local meta = getmetatable(b)
--print(a)
--print(meta)
for i = 0, len - 1 do
print(b[i])
end
end
function callClass(Obj)
print(Obj.name);
end