/// <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; } }
/// <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)); }