public object[] call(LuaFunction func, params object[] _params) { if (func == null) { return(null); } if (isClassLua) { NewList list = ObjPool.listPool.borrowObject(); list.Clear(); list.Add(luaTable); list.AddRange(_params); object[] ret = func.Call(list.ToArray(), null); ObjPool.listPool.returnObject(list); return(ret); } else { return(func.Call(_params)); } }
public static object[] doCallback(object callback, params object[] args) { try { if (callback == null) { return(null); } object[] ret = null; if (callback is LuaFunction) { ret = ((LuaFunction)callback).Call(args); } else if (callback is LuaTable) { LuaFunction func = null; LuaTable instance = null; parseLuafunc(callback as LuaTable, out func, out instance); NewList list = ObjPool.listPool.borrowObject(); list.Add(instance); list.AddRange(args); ret = func.Call(list.ToArray(), null); ObjPool.listPool.returnObject(list); } else if (callback is Callback) { ((Callback)callback)(args); } return(ret); } catch (System.Exception e) { Debug.LogError(e); return(null); } }