Пример #1
0
 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));
     }
 }
Пример #2
0
 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);
     }
 }