/// <summary> /// 创建对象池 /// </summary> /// <param name="poolName"></param> /// <param name="ts"></param> /// <returns></returns> private CMObjPool CreatePool( string poolName , Transform ts , bool needRelease = true , int preLoadNum = 0 , int maxHoldNum = 100 , bool cullNumEnable = true , int cullNum = 20 , int maxKeepWhenIdle = 20 , float maxIdle2Release = 120f , float maxActive2Idle = 60f , string addScriptName = "") { CMObjPool pool = null; if (!m_pools.TryGetValue(poolName, out pool)) { pool = CMObjPool.Create(poolName, ts, needRelease, preLoadNum, maxHoldNum, cullNumEnable , cullNum, maxKeepWhenIdle, maxIdle2Release, maxActive2Idle, m_poolRoot, true, addScriptName, CMResourceMgr.CM_RES_RECYCLE_TEST_MODE); m_pools.Add(poolName, pool); } else { CMObj cmObj = null; if (DataManager.Manager <CMResourceMgr>().TryGetCMObj(poolName, out cmObj)) { cmObj.RemoveRef(); } } return(pool); }
/// <summary> /// 移除对象 /// </summary> /// <param name="poolName"></param> /// <returns></returns> public bool RemovePool(string poolName) { bool success = false; if (m_pools.Remove(poolName)) { CMObj cmObj = null; if (DataManager.Manager <CMResourceMgr>().TryGetCMObj(poolName, out cmObj)) { cmObj.RemoveRef(); } success = true; } return(success); }