C# で Lua を使用する
概要
NLua というライブラリを使用して C# で Lua を使用する。C++ でいう LuaPlus みたいに簡単に組み込める、すごい。
プロジェクト一式はこちらからどうぞ -> download
![]() |
| コンソール |
ソースコード
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CSharp_Lua_test
{
class CSharpLuaTest
{
// Lua から呼ばれる関数
public string Func1(int x)
{
return ("CSharp function : " + x);
}
// C# で Lua を使ってみる
// https://github.com/NLua/NLua を使用
static void Main(string[] args)
{
NLua.Lua state = new NLua.Lua();
// C# の関数を Lua 側から呼べるようにする。
state["CS"] = new CSharpLuaTest();
state.DoString(@"
-- 大きい方を返す関数
function GetBig(x, y)
if x > y then
return x
else
return y
end
end
-- Lua の文字列連結演算子は「..」
test = 'Hello Lua World !' .. ' hoge fuga '
test = test .. 'HAAA'
-- せっかくだし計算してみよう
tmp = 10 * 3 + 6 - 5;
-- C# 側の関数を呼ぶ
tmpRet = CS:Func1(GetBig(100, 20))
");
System.Console.WriteLine("test = " + state.GetString("test"));
System.Console.WriteLine("tmp = " + state.GetString("tmp"));
System.Console.WriteLine("tempRet = " + state.GetString("tmpRet"));
System.Console.WriteLine("[Please Enter key.]");
System.Console.ReadLine();
state.Close();
return;
}
}
}
コンソール
test = Hello Lua World ! hoge fuga HAAA tmp = 31 tempRet = CSharp function : 100 [Please Enter key.]
以上
