Esempio n. 1
0
        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();
                }
            }
        }
Esempio n. 2
0
        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();
                }
            }
        }
Esempio n. 3
0
 public void SetMemoryType(AssetMemoryType type)
 {
     m_memoryType = type;
 }