public static void ReleaseView(EntityObject entity) { if (entity == null) { return; } ViewObject viewObj; if ((viewObj = m_objMap[entity]) == null) { return; } if (EnableLog && Debugger.EnableLog) { Debugger.Log(LOG_TAG, "ReleaseView() {0}:{1} -> {2}:{3}", entity.GetType().Name, entity.GetHashCode(), viewObj.GetRecycleType(), viewObj.GetInstanceID()); } m_objMap.Remove(entity); viewObj.ReleaseInFactory(); viewObj.gameObject.SetActive(false); // 将对象存入到对象池中 m_recycler.Push(viewObj); }
/// <summary> /// 清理以及被释放掉的实例,并且对其进行回收 /// </summary> public static void ClearReleasedObjects() { for (int i = m_objectList.Count - 1; i >= 0; i--) { if (m_objectList[i].IsReleased) { EntityObject obj = m_objectList[i]; m_objectList.RemoveAt(i); // 将对象存入对象池 m_recycler.Push(obj); } } }