Esempio n. 1
0
        /// <summary>
        /// Gets the key4 invoke map.当直接传luafunction时,不能直接用,用Equals查找一下key
        /// </summary>
        /// <returns>The key4 invoke map.</returns>
        /// <param name="callbakFunc">Callbak func.</param>
        /// <param name="map">Map.</param>
        public object getKey4InvokeMap(object callbakFunc, Hashtable map)
        {
            if (callbakFunc == null || map == null)
            {
                return(callbakFunc);
            }
            object key = callbakFunc;

            if (callbakFunc is LuaFunction)
            {
                NewList keys = ObjPool.listPool.borrowObject();
                keys.AddRange(map.Keys);
                for (int i = 0; i < keys.Count; i++)
                {
                    if (((LuaFunction)callbakFunc).Equals((keys [i])))
                    {
                        key = keys [i];
                        break;
                    }
                }
                ObjPool.listPool.returnObject(keys);
                keys = null;
            }
            return(key);
        }
Esempio n. 2
0
 public void cancelInvoke4Lua(object callbakFunc)
 {
     if (callbakFunc == null)
     {
         Hashtable list = null;
         NewList   keys = ObjPool.listPool.borrowObject();
         keys.AddRange(coroutineMap.Keys);
         object key = null;
         for (int i = 0; i < keys.Count; i++)
         {
             key = keys[i];
             if (key != null)
             {
                 list = getCoroutines(key);
                 foreach (DictionaryEntry cell in list)
                 {
                     StopCoroutine((UnityEngine.Coroutine)(cell.Value));
                 }
                 list.Clear();
             }
         }
         coroutineMap.Clear();
         coroutineIndex.Clear();
         ObjPool.listPool.returnObject(keys);
     }
     else
     {
         cleanCoroutines(callbakFunc);
     }
 }
Esempio n. 3
0
        public static NewList create(ArrayList list)
        {
            if (list is NewList)
            {
                return((NewList)list);
            }

            NewList ret = new NewList();

            ret.AddRange(list);
            return(ret);
        }
Esempio n. 4
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));
     }
 }
Esempio n. 5
0
        public static void checkWWWTimeout()
        {
            NewList keys = ObjPool.listPool.borrowObject();

            keys.AddRange(wwwMap4Check.Keys);
            UnityWebRequest www  = null;
            NewList         list = null;

            for (int i = 0; i < keys.Count; i++)
            {
                www = keys[i] as UnityWebRequest;
                if (www != null)
                {
                    list = wwwMap4Check[www] as NewList;
                    if (list != null)
                    {
                        doCheckWWWTimeout(www, list);
                    }
                }
            }
            keys.Clear();
            ObjPool.listPool.returnObject(keys);
            keys = null;
        }
Esempio n. 6
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);
     }
 }