Esempio n. 1
0
    public void _OnLoadObject(UnityEngine.Object orgObj, AssetCache cache)
    {
        if ((orgObj == null) || (cache == null))
        {
            return;
        }

        AssetCache ca;

        if (!mObjCacheMap.TryGetValue(orgObj.GetInstanceID(), out ca))
        {
            ca = null;
        }

        if (ca != null)
        {
            if (ca.RefCount == 0)
            {
                ca.LastUsedTime = GetCurrentTime();
            }
            return;
        }

        // 从Temp列表清除
        RemoveTempAsset(cache);

        // 设置一次时间(防止短时间删除删除)
        cache.LastUsedTime = GetCurrentTime();
        cache.AddObj(orgObj.GetInstanceID());

        if (!mCacheSet.Contains(cache))
        {
            mCacheSet.Add(cache);
            LinkedListNode <AssetCache> node = cache.LinkListNode;
            mNotUsedCacheList.AddLast(node);
        }

        mObjCacheMap.Add(orgObj.GetInstanceID(), cache);
    }