// C#中删除一个对象 对Lua的引用没有影响 // 常见问题:C#中已经删除,但是lua中的引用还在,导致问题很难查 public void Destroy(int udata) { object o = objects.Destroy(udata); if (o != null) { if (!TypeChecker.IsValueType(o.GetType())) { RemoveObject(o, udata); } Debugger.Log("destroy object {0}, id {1}", o, udata); } }
//删除,但不移除一个lua对象(移除id只能由gc完成) public void Destroy(int udata) { object o = objects.Destroy(udata); if (o != null) { if (!TypeChecker.IsValueType(o.GetType())) { objectsBackMap.Remove(o); } if (LogGC) { Debugger.Log("destroy object {0}, id {1}", o, udata); } } }
//预删除,但不移除一个lua对象(移除id只能由gc完成) public void Destroy(int udata) { objects.Destroy(udata, true, LogGC); }