/// <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); }
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); } }
public static NewList create(ArrayList list) { if (list is NewList) { return((NewList)list); } NewList ret = new NewList(); ret.AddRange(list); return(ret); }
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 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; }
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); } }