c# lua 简单交互

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数组
        }
    }

}





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);

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值