1、新建lua脚本Test.lua,在里面创建一些全局变量和一个局部变量用来测试
--全局变量
testNumber = 1
testBool = true
testFloat = 1.2
testString = "123"
local testLocal = 10
2、在Main.lua中执行Test.lua文件
3、新建脚本文件,先初始化解析器,然后在得到的解析器中通过[“变量名”]即可得到
LuaMgr.GetInstance().Init();
LuaMgr.GetInstance().Require("Main");
//获取全局变量
//toLua中访问全局变量:得到一个lua解析器,然后中括号,变量名 即可得到
Debug.Log("testNumber: "+LuaMgr.GetInstance().LuaState["testNumber"]);
Debug.Log("testBool: "+LuaMgr.GetInstance().LuaState["testBool"]);
Debug.Log("testFloat: "+LuaMgr.GetInstance().LuaState["testFloat"]);
Debug.Log("testString: "+LuaMgr.GetInstance().LuaState["testString"]);
//值拷贝
int value = Convert.ToInt32(LuaMgr.GetInstance().LuaState["testNumber"]);
value = 99;
Debug.Log("testNumber: "+LuaMgr.GetInstance().LuaState["testNumber"]);
//如果要改值,直接修改即可
LuaMgr.GetInstance().LuaState["testNumber"]=99;
Debug.Log("testNumber: "+LuaMgr.GetInstance().LuaState["testNumber"]);
//toLua中没有办法通过c#得到local声明的局部临时变量
Debug.Log("testLocal: "+LuaMgr.GetInstance().LuaState["testLocal"]);
//新加全局变量
Debug.Log("addValue: "+LuaMgr.GetInstance().LuaState["addValue"]);
LuaMgr.GetInstance().LuaState["addValue"] = 999;
Debug.Log("addValue: "+LuaMgr.GetInstance().LuaState["addValue"]);