public void RemoveEffectObj(IEffect effect) { if (effect == null) { return; } m_mapEffect.Remove(effect.code); List <IEffect> objList = null; string strObjName = effect.GetResName(); if (m_lstCacheEffectObj.Contains(strObjName)) { if (effect.Node == null) { effect.Destroy(); Utility.Log.Error("RemoveEffect error {0}", effect.GetResName()); return; } if (!m_mapEffectObjIdle.TryGetValue(effect.GetResName(), out objList)) // 缓存池里面有数据 { objList = new List <IEffect>(); m_mapEffectObjIdle.Add(effect.GetResName(), objList); } effect.Node.SetActive(false); effect.IdleStartTime = Time.realtimeSinceStartup; objList.Add(effect); effect.SetParent(m_ObjPool); } else { effect.Destroy(); effect = null; } }