天天看點

xLua中C#調用Lua

這裡使用的是XLua架構,需要提前配置xlua,設定加載器路徑;

可以參考之前的Blog:《xlua入門基礎》;

lua中所有的全局變量都會存在一個表中,對應xLua中的Global,通過lua解釋器傳回出來;

通過Global的方法Get<類型>(key)調用;

調用lua中局部變量,通過table調用;

調用lua中方法和調用變量方式相同,傳回值為委托類型;

1)使用委托

2)使用LuaFunction

坑:這裡使用委托必須要加[CSharpCallLua]特性,但是有時候加了也會失效,可能是xlua版本和Unity版本相容問題;

Lua中的table相當于C#中的類,調用表也就是調用類;

坑:這兩個列印結果明顯不同,通過類映射調用,修改類對象的字段後,再調用lua方法,方法中使用了該字段,發現字段值并沒有改變,這應該是和lua中self的指派有關系;

建議使用LuaTable來調用lua中的table;

但是據說通過結構體映射會減少Lua代碼調用的GC,需要加上特性[GCOptimize];

xLua中C#調用Lua

Life is too short for so much sorrow.  

分類: Lua