XLua文档4: 4、另外一种by ref方式:映射到LuaTable类
这种方式好处是不需要生成代码,但也有一些问题,比如慢,比方式2要慢一个数量级,比如没有类型检查。
private LuaEnv luaEnv;
void Start()
{
luaEnv = new LuaEnv();//全局唯一
luaEnv.AddLoader(CustomLoader);//添加自定义路径
luaEnv.DoString("require '007' ");//在自定义路径中查找007文件
var result = luaEnv.Global.Get<LuaTable>("person");
var nameStr = result.Get<string>("name");//通过指定类型获取指定的内容
var ageInt = result.Get<int>("age");
Debug.Log("nameStr:" + nameStr);
Debug.Log("ageInt:" + ageInt);
Debug.Log("====================================");
Debug.Log("result.len:" + result.Length);//长度值不知道代表什么鬼,不准确,不清楚
Debug.Log("====================================");
foreach (var itme in result.GetKeys())//具体映射到的所有内容
{
var all = result.Get<object>(itme);
Debug.Log(itme + " = " + all);
}
}
private byte[] CustomLoader(ref string filepath)
{
string path = Application.dataPath + "/Scripts/Xlua/" + filepath + ".lua";//自定义Lua文件路径
return Encoding.UTF8.GetBytes(File.ReadAllText(path));//返回对应文件的byte[]数据
}
|
请发表评论