Lua與C#交互

usingSystem;

usingLuaInterface;

usingSystem.IO;

usingSystem.Text;

namespaceLuaForCsharp_01

{

publicclassHero{

publicstringname="沙王";

publicfloatattack=250;

publicvoidAttack(){

Console.WriteLine(this.name+"發(fā)起攻擊傷害值為:"+this.attack);

}

publicstaticvoidInit(){

Console.WriteLine("這是C#中的靜態(tài)方法");

}

}

classMainClass

{

publicstaticvoidMain(string[]args)

{

//創(chuàng)建lua環(huán)境

Lua?evn=newLua();

//通過lua環(huán)境創(chuàng)建兩個(gè)變量

evn["num"]=1;

evn["name"]="張三";

//執(zhí)行l(wèi)ua中的代碼

evn.DoString("print(name)");

//我們可以將一段lua代碼放進(jìn)去

evn.DoString(@"

Player={}

Player['name']='猴子'

print(Player.name)

");

//c#中注冊(cè)普通方法給lua調(diào)用

Hero?h=newHero();

evn.RegisterFunction("HeroAttack",h,h.GetType().GetMethod("Attack"));

//C#中靜態(tài)方法的注冊(cè)

evn.RegisterFunction("Init",null,typeof(Hero).GetMethod("Init"));

evn.DoFile("C:\\Users\\Administrator\\Desktop\\LuaForCsharp_01\\LuaForCsharp_01\\lua02.lua");

//evn.DoString("HeroAttack()");

//FileStream.TextFile=File.Open(@"c:\tempuploads\newFile.txt",FileMode.Append);

}

}

}



txt文件

print("這是lua文件-----")

for i=1 ,10 do

print(i)

end

HeroAttack()

Init()

-- lua 中應(yīng)用c#類型

—-引入命名空間

luanet.load_assembly("System”)

Int32=luanet.import_type("System.Int32")

num = Int32.Parse("123")

print(num)

luanet.load_assembly("LuaForCsharp_01")

--加載Hero類型

Hero = luanet.import_type("LuaForCsharp_01.Hero")

hero = Hero()

print(hero.name)

hero:Attack()



http://blog.csdn.net/u011244737/article/details/49998437

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容