示例#1
0
        /// <summary>
        /// Calls the Lua function 'luaFuncName' with the given parameters
        /// </summary>
        public void CallLuaFunction(string luaFuncName, object[] args)
        {
            Lua.lua_getglobal(L, luaFuncName);
            if (!Lua.lua_isfunction(L, -1))
            {
                Lua.lua_pop(L, 1);
                return;
            }
            int argc = (args != null) ? args.Length : 0;

            for (int i = 0; i < argc; i++)
            {
                PushBasicValue(args[i]);
            }

            if (Lua.lua_pcall(L, argc, 0, 0) != 0)
            {
                m_errors.Add("Failed to run function '" + luaFuncName + "'");
                return;
            }
        }
示例#2
0
        /// <summary>
        /// Calls the Lua function 'luaFuncName' with the given parameters
        /// </summary>
        /// <param name="returnType">Lua type of the return value</param>
        public object CallLuaFunction(string luaFuncName, object[] args, out int luaType)
        {
            luaType = 0;
            Lua.lua_getglobal(L, luaFuncName);
            if (!Lua.lua_isfunction(L, -1))
            {
                Lua.lua_pop(L, 1);
                return(null);
            }
            int argc = (args != null) ? args.Length : 0;

            for (int i = 0; i < argc; i++)
            {
                PushBasicValue(args[i]);
            }

            if (Lua.lua_pcall(L, argc, 1, 0) != 0)
            {
                m_errors.Add("Failed to run function '" + luaFuncName + "'");
                return(null);
            }
            return(GetValueOfStack(out luaType));
        }