Unity热更系列--C#访问XLua的公共变量,方法等
生活随笔
收集整理的這篇文章主要介紹了
Unity热更系列--C#访问XLua的公共变量,方法等
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果你想讓你在編寫Lua的時候給你增加對Unity的代碼提示的話? 請看:https://blog.csdn.net/FransicZhang/article/details/89483861
?
首先,你得在項目中加入XLua的環境
腳本中添加對Xlua的引用
using XLua;然后創建一個XLua的虛擬機(解析器) 最好項目全局只有一個
LuaEnv luaenv = new LuaEnv();1、我們先寫一個簡單的XLua測試看看能不能跑起來
LuaEnv luaenv = new LuaEnv();luaenv.DoString("print('I am XLua')");可以看出來 XLua的環境沒有問題。
2、我們創建一個HelloXLua.lua的文件? ?來使用C#訪問這個Lua文件? ?看能不能訪問出里面的全局變量
--Lua腳本 a = 10 str = "Zhang" IsDie = true然后在C#中寫:
LuaEnv luaenv = new LuaEnv(); luaenv.DoString("require 'HelloXLua'");//固定寫法 傳入Lua文件名 int a = luaenv.Global.Get<int>("a");//獲取Lua的全局變量 string str = luaenv.Global.Get<string>("str");//獲取Lua的全局變量 bool IsDie = luaenv.Global.Get<bool>("IsDie");//獲取Lua的全局變量 print(a); print(str); print(IsDie);
可以看到我們已經成功的訪問到了Lua中的全局變量
3、我們來看怎么運行Lua中的方法
(帶參沒有返回值)
--Lua腳本 function add(a, b)print(a + b)print("我被調用了") end //C#腳本 LuaEnv luaenv = new LuaEnv(); Add add = luaenv.Global.Get<Add>("add"); add(20, 60);//返回值方法 多個返回值 add = null;//在外面定義一個委托 [CSharpCallLua]//標簽 固定寫法 delegate int Add(int a, int b);可以看出來帶參數的方法也成功的調用
?
(帶參有返回值)
--Lua腳本 function add(a, b)print(a + b)print("我被調用了")-- bodyreturn a + b, a, b end參數使用? ref或者out
//C#腳本 Add add = luaenv.Global.Get<Add>("add"); int resa, resb; int adsd = add(20, 60, out resa, out resb);//返回值方法 多個返回值 print(resa); print(resb); print("adsd--" + adsd);//定義委托 [CSharpCallLua] delegate int Add(int a, int b, out int resa, out int resb);?
總結
以上是生活随笔為你收集整理的Unity热更系列--C#访问XLua的公共变量,方法等的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 同伦法
- 下一篇: C# 截取上传flv文件中其中一帧图片