LuaInterface做用是用來完成Lua與C#的相互調用.函數
LuaInterface核心庫:1.luainterface.dll 用於C#讀取lua(放在bin目錄同級)ui
2.luanet.dll 用於lua讀取C#(放在bin/debug目錄下)編碼
寫C#腳本時如用到lua,則將luainterface.dll 和luanet.dll 導入工程,同時引用 using luainterface.dll; lua
這樣就直接能夠引用spa
Lua xt =new Lua();debug
賦值: xt["num"]=2;string
xt["str"]="a string";it
xt.newtable("mytable");建立新表格io
1). xt.DoString("num"=2);table
xt.DoString("str =' a string ' ");
object [] obj =xt.DoString("return str ,num");
foreach (object j in obj)
{Console.WriteLine(j); }
2). xt.DoFile("mylua.xt");---------C#編碼
--------------如下是lua編碼------------------
(注意編碼格式爲ANSI)
str ="a string"
num=2
print(str,num)
3). C#語言與lua語言對應關係
Lua C#
nil null
string system.string
number system.double
boolean system.Boolean
table luainterface.Luatable
function luainterface.function
1). public void NomalMethod()//普通方法
{
cw....
}
2). Program tempProgram =new Program ();
3).xt.RegisterFunction("NewMethod",tempProgram ,tempProgram.GetType().GetMethod("NomalMethod") );
4).xt.DoString("NewMethod()"); //執行
1). public static void MyStaticMethod()//普通方法
{
cw....
}
2). Program TempProgram =new Program ();
3).xt.RegisterFunction("NewStaticMethod", null,TempProgram.GetType().GetMethod("MyStaticMethod") );
4).xt.DoString("NewStaticMethod()"); //執行
1). require "luanet"-----------------luanet是庫,須要放對位置
2). luanet.load_assembly("System") --加載C#系統
3).int32=luanet. import_type("System.Int32") --定義int32
4). num=int32.Parse("3456")-----.Parse爲C#中靜態方法此時已被調用
print(int32)
print(num)
-------------------C#腳本----------------------------------
namespace Test
{
class testProgram()
{
public string name ="myname";
public void testMethod()
{
cw....
}
}
}
-------------------lua腳本----------------------------------
1). require "luanet"-----------------luanet是庫,須要放對位置
2). luanet.load_assembly("Test") --加載C#系統
3).Myprogram=luanet. import_type("Test.tastProgram") --定義int32
4).Myprogram001=Myprogram()-----new一下
5).print(Myprogram001.name)
print(Myprogram001:testMethod)
-------------------------------------------------------------------------