/// <summary> /// Table数组转为List /// </summary> /// <param name="table">Table数组</param> /// <returns></returns> private static IList <object> LuaTableToList(LuaTable table) { IList <object> result = new List <object>(); foreach (var key in table.Keys) { var value = table[key]; var kind = LuaScriptRunner.CheckLuaTable(value); if (kind == 0) { result.Add(value); } else if (kind == 1) { IEnumerable <KeyValuePair <string, object> > res = LuaScriptRunner.LuaTableToDictionary((LuaTable)value); result.Add(res); } else { IList <object> res = LuaScriptRunner.LuaTableToList((LuaTable)value); result.Add(res); } } return(result); }
/// <summary> /// lua数据转C#数据 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="obj"></param> /// <returns></returns> public static T LuaTableToCSharpData <T>(object obj) { object result = null; if (obj != null) { int kind = LuaScriptRunner.CheckLuaTable(obj); if (kind == 3) { return(default(T)); } if (kind == 0) { result = obj; } else if (kind == 1) { result = LuaScriptRunner.LuaTableToDictionary((LuaTable)obj); } else { result = LuaScriptRunner.LuaTableToList((LuaTable)obj); } } return((T)result); }