c# lua 簡單互動
阿新 • • 發佈:2019-02-02
64位下 目標平臺需要設定為 X86
轉:
c# 與 lua 的互動 比較簡單, 一下為例子:
c# 檔案內容:
- using System;
- using System.Collections.Generic;
- using System.Text;
- using LuaInterface; // lua 封裝庫
- namespace lua_test
- {
- class MyClass // 自定義類
- {
- publicstring MyStr(string s) // 自定義功能函式
-
{
- return s + " World !";
- }
- }
- class Program
- {
- publicstatic Lua m_lua = new Lua(); // 建立lua虛擬機器
- staticpublicvoid init()
- {
- MyClass my = new MyClass(); // 建立自定義類 例項
-
// 在lua虛擬機器(全域性)中註冊自定義函式,一邊在lua檔案中呼叫該函式
- m_lua.RegisterFunction("MyStr", my, my.GetType().GetMethod("MyStr"));
- m_lua.DoFile("lua_test.lua"); // 載入lua檔案(絕對路徑)
- }
- staticvoid Main(string[] args)
- {
- init();
- // 載入亂檔案後,使用GetFunction獲取函式,再呼叫Call執行(傳引數)
-
object
- // Call函式的返回值為一個object陣列
- }
- }
- }
lua檔案(lua_test.lua)內容:
function MyNum(i)
s = MyStr("Hello");
return i,s;
end
執行完後 objs 中 2 個值 為100 和 Hello World !