c# 与lua交互学习

1.控制台选择 控制台应用(.NET Framework)一定要看仔细
2先下载 luainterface.dll 和luanet.dll
下载地址
3.将luainterface.dll 添加引用并且点击属性始终复制或者有较新复制(会复制到对应项目路径下bin/Debug下)
在这里插入图片描述
编写的lua代码编码格式一定要调整 尽量使用ANSI 或者简体中文GB2312(具体怎么调百度对应编辑器调节编码格式设置)
并且lua文件调整成较新的复制

using System;
using LuaInterface;
namespace MyLuaInterface
{
    class Program
    {
        static void Main(string[] args)
        {
            Lua lua = new Lua();
            // lua.DoString("num=2"); // 这里执行一句lua代码
            // lua.DoString("str ='name'");//这是执行lua文件
            // var values= lua.DoString("return num , str");
            // foreach (var item in values)
            // {
            //     Console.WriteLine(item);
            // }
            //lua.DoFile("luatest.lua");
            // 在C# 中注册普通方法到lua 中
            // Program P = new Program();
            //
            // lua.RegisterFunction("test", P, P.GetType().GetMethod("test"));
            // 
            // lua.DoString("test()");
            //这里是将c# 静态方法注册到lua中执行
            // lua.RegisterFunction("teststatic", null, typeof(Program).GetMethod("teststatic"));
            // lua.DoString("teststatic()");

            lua.DoFile("script.lua");
            Console.ReadKey();
        }

        public void test() {
            Console.WriteLine("hahA");
        }
        public static void teststatic()
        {
            Console.WriteLine("nihaoa ");
        }
    }
}

-- 这里是lua代码
Enemy ={}
local this = Enemy
this.name ="zhangsan"
this.hp =100
this.attack = function ( ... )
	print("怪物攻击")
end

function this.move( ... )
	this.attack();
	print("敌人移动了");
end
this.move()
print(this.hp)
print(type(this.name))

-- 这里是lua代码 调用C#
require = "luanet"
luanet.load_assembly("System") -- 加载dll文件
Inte32 =  luanet.import_type("System.Int32")
print(Inte32)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值