[Lua]与c#的交互(一)

2021-01-16 00:11

阅读:440

标签:输入   项目   文件   lease   new   返回   values   pre   lua   

参考链接:

https://www.cnblogs.com/chinarbolg/p/9601452.html

 

luainterface下载(推荐用1.5.3):

http://files.luaforge.net/releases/luainterface/luainterface

 

0.准备

下载好luainterface后解压,打开Built文件夹,里面的3个dll后面会用到

技术图片

创建一个c#控制台项目,添加引用,选择上面的LuaInterface.dll。然后将上面的lua51.dll和luanet.dll复制到项目中的bin\Debug目录下

技术图片

 

1.创建lua解释器

 1 using LuaInterface;
 2 using System;
 3 
 4 namespace TestLua
 5 {
 6     class Program
 7     {
 8         static void Main(string[] args)
 9         {
10             Lua lua = new Lua();        //创建一个lua解释器
11             lua["num"] = 66;               //用C#脚本在lua环境中,创建一个变量
12             lua["str"] = "chinar";         //用C#脚本在lua环境中,创建一个字符串变量
13             Console.WriteLine(lua["num"]); //输出
14             Console.WriteLine(lua["str"]); //输出
15             Console.ReadKey();             //等待输入
16         }
17     }
18 }

输出:

技术图片

 

2.执行lua代码段(lua.DoString)

 1 using LuaInterface;
 2 using System;
 3 
 4 namespace TestLua
 5 {
 6     class Program
 7     {
 8         static void Main(string[] args)
 9         {
10             Lua lua = new Lua();                              //创建一个lua解释器
11             lua.DoString("num=666");                          //用C#脚本在lua环境中,创建一段lua脚本:num=666
12             lua.DoString("str=‘chianr666‘");                  //用C#脚本在lua环境中,创建一段lua脚本:str=‘chianr666‘
13             object[] values = lua.DoString("return num,str"); //用一个object数组 去接受返回值
14             foreach (var value in values)                     //遍历 values 数组中的元素
15             {
16                 Console.WriteLine(value); //输出
17             }
18             Console.ReadKey(); //等待输入
19         }
20     }
21 }

输出:

技术图片

 

3.执行lua代码文件(lua.DoFile)

 1 using LuaInterface;
 2 using System;
 3 
 4 namespace TestLua
 5 {
 6     class Program
 7     {
 8         static void Main(string[] args)
 9         {
10             Lua lua = new Lua();      //创建一个lua解释器
11             lua.DoFile("test.lua");    //加载lua文件 —— lua.DoFile(文件名)
12             Console.ReadKey();        //等待输入
13         }
14     }
15 }

test.lua

1 print(I am Chianr)
2 MyTable={1,22,333,4444,55555,666666}
3 print(table.concat(MyTable)..I am Chianr)

注意要将上面的lua文件拖到项目根目录中,并且修改属性如下,这样lua文件才能被识别到

技术图片

输出:

技术图片

 

4.

[Lua]与c#的交互(一)

标签:输入   项目   文件   lease   new   返回   values   pre   lua   

原文地址:https://www.cnblogs.com/lyh916/p/12234143.html


评论


亲,登录后才可以留言!