public LuaBaseRef TryGetLuaRef(int reference) { WeakReference weak = null; if (funcRefMap.TryGetValue(reference, out weak)) { if (weak.IsAlive) { LuaBaseRef luaRef = (LuaBaseRef)weak.Target; if (luaRef.IsAlive) { luaRef.AddRef(); return(luaRef); } } funcRefMap.Remove(reference); } return(null); }