首先去下载 最新版本的 uLua
c# 与 lua 的交互 比较简单, 一下为例子:
c# 文件内容:
- using System;
- using System.Collections.Generic;
- using System.Text;
- using LuaInterface; // lua 封装库
- namespace lua_test
- {
- class MyClass // 自定义类
- {
- public string MyStr(int _num) // 自定义功能函数
- {
- return _num + " Hello World !";
- }
- }
- class Program
- {
- public static LuaState m_lua = new LuaState(); // 创建lua虚拟机
- static public void init()
- {
- MyClass my = new MyClass(); // 创建自定义类 实例
- // 在lua虚拟机(全局)中注册自定义函数,一边在lua文件中调用该函数
- LuaState.RegisterFunction("MyStr", my, my.GetType().GetMethod("MyStr"));
- LuaState.DoFile("lua_test.lua"); // 加载lua文件(绝对路径)
- }
- static void Main() //调用这个函数
- {
- init();
- // 加载乱文件后,使用GetFunction获取函数,再调用Call执行(传参数)
- object[] objs = m_lua.GetFunction("MyNum").Call(999);
- // Call函数的返回值为一个object数组
- }
- }
- }
lua文件(lua_test.lua)内容:
function MyNum(i)
s = MyStr(i);
return i,s;
end
执行完后 objs 中 2 个值 为100 和 Hello World !
注意:
DoFile 路径 TextAsset.Load 必须是txt格式,
所以把lua改成.txt结尾,且必须放在Resource目录下