【分享】C#中执行lua代码,以及将c#注册进lua的全局方法

44 篇文章 1 订阅

之前需要引用luainterface.dll,luanet.dll。
c#注册进lua的全局方法

 

[C#] 纯文本查看 复制代码

static void Main(string[] args)
         {
             Lua lua = new Lua();
             Program obj = new Program();
//把一个类中的普通方法注册进去
            lua.RegisterFunction("NormalMethod", obj, obj.GetType().GetMethod("NormalMethod"));
             lua.DoString("NormalMethod()");
//把一个类中的普通方法注册进去
            lua.RegisterFunction("MyStaticMethod", null, typeof(Program).GetMethod("MyStaticMethod"));
             lua.DoString("MyStaticMethod()");

            Console.ReadLine();
         }
    
         public void NormalMethod()
         {
Console.WriteLine("wahaha");
         }

        public static void MyStaticMethod()
         {
             Console.WriteLine("static");
         }


C#中执行lua代码和脚本

 

[C#] 纯文本查看 复制代码

Lua lua = new Lua();
//在c#中lua代码
lua.DoString("num=2");
            lua.DoString("name='YDL'");
            lua.DoString("flag=true");
            object[] values= lua.DoString("return num,name,flag");

            foreach(object obj in values)
            {
                Console.WriteLine(obj);
            }
//在c#中执行lua脚本
            lua.DoFile("helloword.lua");
            Console.ReadLine();


LUA脚本中的代码

 

[C++] 纯文本查看 复制代码

print("hello!")


C#中执行lua脚本,lua脚本调用c#中的方法
lua脚本中的代码

 

[AppleScript] 纯文本查看 复制代码

require "luanet"
luanet.load_assembly("testLuainterface")--testLuainterface是命名空间
Program=luanet.import_type("testLuainterface.Program")
program1=Program()
s=program1:TestOut("ydl")
print(s)


c#中的代码

 

[AppleScript] 纯文本查看 复制代码

static void Main(string[] args)
        {
            Lua lua = new Lua();
            lua.DoFile("helloword.lua");
            Console.ReadLine();            
        }

        public int TestOut(string name)
        {
            return name.Length;
        }


从siki老师的热更新里面学到的~~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值