private void _CleanAsset(bool immediately) { //UnLoadAsset float timeNow = Time.time; if (immediately || timeNow > lastHandlTime + 30.0f) { lastHandlTime = timeNow; if (m_assetsCache.Count > 0) { m_temp.Clear(); foreach (KeyValuePair <string, AssetCache> kv in m_assetsCache) { AssetMemoryType memoryType = kv.Value.GetMemoryType(); if (memoryType == AssetMemoryType.Auto_Clean) { if (immediately || timeNow > kv.Value.GetLastRefTime() + 60.0f) { m_temp.Add(kv.Value); } } else if (memoryType == AssetMemoryType.Manual_Clean) { if (immediately) { m_temp.Add(kv.Value); } } } for (int i = 0; i < m_temp.Count; ++i) { m_temp[i].OnRelease(); } m_temp.Clear(); } } }
private void _ReleaseAb(bool immediately) { //release ab float timeNow = Time.time; if (immediately || timeNow > lastHandlTime + 10.0f) { lastHandlTime = timeNow; if (m_bundleCache.Count > 0) { m_temp.Clear(); foreach (KeyValuePair <string, BundleCache> kv in m_bundleCache) { AssetMemoryType memoryType = kv.Value.memoryType; if (memoryType == AssetMemoryType.Auto_Clean) { if (immediately || timeNow > kv.Value.lastRefTime + 15.0f) { m_temp.Add(kv.Value); } } else if (memoryType == AssetMemoryType.Manual_Clean) { if (immediately) { m_temp.Add(kv.Value); } } } for (int i = 0; i < m_temp.Count; ++i) { m_temp[i].OnRelease(); } m_temp.Clear(); } } }
public void SetMemoryType(AssetMemoryType type) { m_memoryType = type; }