/// <summary> /// 销毁缓存池 /// </summary> internal void DestroyPool() { completeCallback = null; if (m_PreloadTimerTask != null) { TimerManager.GetInstance().RemoveTimer(m_PreloadTimerTask); m_PreloadTimerTask = null; } m_UsedItemList.Clear(); for (int i = m_UnusedItemQueue.Count - 1; i >= 0; i--) { UnityObject.Destroy(m_UnusedItemQueue.Dequeue()); } m_UnusedItemQueue.Clear(); if (m_TemplateType == PoolTemplateType.PrefabInstance || m_TemplateType == PoolTemplateType.RuntimeInstance) { UnityObject.Destroy(m_InstanceOrPrefabTemplate); } m_AssetPath = null; m_SpawnPool = null; m_InstanceOrPrefabTemplate = null; IsAutoClean = false; }
/// <summary> /// 使用定时器进行预加载结束 /// </summary> private void OnPoolComplete() { completeCallback?.Invoke(m_SpawnPool.PoolName, m_AssetPath); completeCallback = null; if (m_PreloadTimerTask != null) { TimerManager.GetInstance().RemoveTimer(m_PreloadTimerTask); m_PreloadTimerTask = null; } }