Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }