public void RemoveObject(int udata) { object o = objects.Remove(udata); if (o != null && !TypeChecker.IsValueType(o.GetType())) { objectsBackMap.Remove(o); } }
// Lua中删除一个对象 对C#的引用没有影响 public void LuaRemoveObject(int udata) { //只有Lua gc才能移除 object o = objects.Remove(udata); if (o != null) { if (!TypeChecker.IsValueType(o.GetType())) { RemoveObject(o, udata); } Debugger.Log("gc object {0}, id {1}", o, udata); } }
//lua gc一个对象(lua 库不再引用,但不代表c#没使用) public void RemoveObject(int udata) { //只有lua gc才能移除 object o = objects.Remove(udata); if (o != null) { if (!TypeChecker.IsValueType(o.GetType())) { RemoveObject(o, udata); } if (LogGC) { Debug.LogFormat("gc object {0}, id {1}", o, udata); } } }
//完全移除一个对象,适合lua gc public void RemoveObject(int udata) { RemoveFromGCList(udata); object o = objects.Remove(udata); if (o != null) { if (!TypeChecker.IsValueType(o.GetType())) { objectsBackMap.Remove(o); } if (LogGC) { Debugger.Log("remove object {0}, id {1}", o, udata); } } }
//lua gc一个对象(lua 库不再引用,但不代表c#没使用) public void RemoveObject(int udata) { //只有lua gc才能移除 objects.Remove(udata, LogGC); }