Пример #1
0
        public void RegisterFuncByMethodInfo(String funcName, MethodInfo m, LuaAPI.lua_CFunction cfunc)
        {
            if (m == null)
            {
                return;
            }
            else
            {
                methods.Add(m);
                paramters.Add(m.GetParameters());

                int a = LuaInstance.MergeInt(registerFuntionIndex, classIndex);
                lua.PushInteger(a);
                lua.PushLuaClosure(cfunc, 1);
                lua.SetField(-2, funcName);

                registerFuntionIndex++;
            }
        }
Пример #2
0
        private void RegisterField()
        {
            fields = registerType.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.Static);

            if (fields == null)
            {
                return;
            }
            else
            {
                LuaAPI.lua_CFunction cfunc = LuaInstance.SetField;

                for (int i = 0; i < fields.Length; i++)
                {
                    int a = LuaInstance.MergeInt(fieldIndex, classIndex);
                    lua.PushInteger(a);
                    lua.PushLuaClosure(cfunc, 1);
                    lua.SetField(-2, fields[i].Name);

                    fieldIndex++;
                }
            }
        }