function add()
print
("add"
)end
using xlua;
luaenv luaenv =
newluaenv()
;luaenv.
dostring
("require 'csharpcalllua'");
//需要先將lua指令碼載入進來
action add1=luaenv.global.
get<
action
>
("add");
add1()
;add1=
null
;//注意這邊要釋放掉add1對lua中方法的引用,否則dispose的時候會報錯
dispose()
;
注意:若要對映為帶引數的委託action,則要給其新增[csharpcalllua]屬性生成一部分**,action預設新增了,因此若要對映帶引數的全域性函式,最好自定義委託
function add
(a,b)
print
(a+b)
end
using xlua;
[csharpcalllua
]delegate
void
add(
int a ,
int b)
;luaenv luaenv =
newluaenv()
;luaenv.
dostring
("require 'csharpcalllua'");
//需要先將lua指令碼載入進來
add add1=luaenv.global.
get<
add>
("add");
add1(66
,73);
add1=
null
;//注意這邊要釋放掉add1對lua中方法的引用,否則dispose的時候會報錯
dispose()
;
function add
(a,b)
return a+b,a,b
end
using xlua;
[csharpcalllua
]delegate
intadd
(int a ,
int b ,
out outa ,
out outb)
;luaenv luaenv =
newluaenv()
;luaenv.
dostring
("require 'csharpcalllua'");
//需要先將lua指令碼載入進來
int outa,outb;
add add1=luaenv.global.
get<
add>
("add");
int result =
add1(66
,73,out outa,
out outb)
;print
(result)
;//139
print
(outa)
;//66
print
(outb)
;//73
add1=
null
;//注意這邊要釋放掉add1對lua中方法的引用,否則dispose的時候會報錯
dispose()
;
這邊lua函式的第乙個返回值會給c#中的返回值,之後的返回值按順序給out或ref引數
優點:簡單,方便,**量少
缺點:效能比較慢
function add
(a,b)
return a+b,a,b
end
using xlua;
luaenv luaenv =
newluaenv()
;luaenv.
dostring
("require 'csharpcalllua'");
//需要先將lua指令碼載入進來
luafunction func = luaenv.global.
get<
luafunction
>
("add");
object
os=func.
call(1
,2);
foreach
(object i in os)
dispose()
;
xLua學習總結(三) C 訪問lua中資料
1.將lua中基本資料對映到c 型別 lua中資料 a 1 str 小明 檔案編碼改為utf 8 isright true c int a env.global.get a string str env.global.get str bool isright env.global.get isrig...
XLua學習 C 訪問Lua 變數,表,函式
首先通過luaenv.dostring 獲取到lua中的內容。然後通過luaenv.global.get方法可以對其中的屬性進行獲取。luaenv env new luaenv env.dostring require csharpcalllua lua檔名 1.獲取全域性變數的基本屬性型別 例 l...
XLua框架學習(一)執行lua指令碼
using xlua luaenv luaenv newluaenv 開啟lua虛擬機器,最好乙個程式只有乙個虛擬機器 占用效能 luaenv.dostring print hello world 執行lua指令碼,輸出帶lua 字首 luaenv.dispose 關閉虛擬機器另一種輸出 unity...