Example #1
0
        /// <summary>
        /// 更新holder下的对象显示
        /// </summary>
        /// <param name="varOriObjInfo"></param>
        public void AddToHolder(OriginalObjInfo varOriObjInfo)
        {
            if (varOriObjInfo == null || varOriObjInfo.mObj == null || varOriObjInfo.mHolder == null)
            {
                return;
            }
            Type type = varOriObjInfo.mObj.GetType();

            if (type == typeof(TextAsset))
            {
                varOriObjInfo.mHolder.SetParent(mTextAssetHolder);
            }
            else if (type == typeof(GameObject))
            {
                varOriObjInfo.mHolder.SetParent(mGameObjectHolder);
            }
            else if (type == typeof(Texture) || type == typeof(Texture2D) || type == typeof(Texture3D))
            {
                varOriObjInfo.mHolder.SetParent(mTextureHolder);
            }
            else if (type == typeof(AudioClip))
            {
                varOriObjInfo.mHolder.SetParent(mAudioClipHolder);
            }
            else if (type == typeof(AnimationClip))
            {
            }
            else if (type == typeof(Material))
            {
                varOriObjInfo.mHolder.SetParent(mMaterialHolder);
            }
        }
Example #2
0
 /// <summary>
 /// 从对象池中移除一个对象
 /// </summary>
 /// <param name="varOriObjInfo"></param>
 public void RemoveOriginalObjInfo(OriginalObjInfo varOriObjInfo)
 {
     if (varOriObjInfo == null)
     {
         return;
     }
     if (mPoolObjs == null || mPoolObjs.Count == 0)
     {
         return;
     }
     mPoolObjs.Remove(varOriObjInfo.mFilePath);
 }
Example #3
0
            private void OnLoadCallbackPreviosVersion(UnityEngine.Object varObj, ResourceLoadParam varParam)
            {
                GameObjPool.GetSingleton().RemoveTaskQueue(this);
                if (varObj == null)
                {
                    if (varParam != null)
                    {
                        Helper.LogError("LoadTask OnLoadCallback:Error caused by null UnityEngine.Object instance,type: " + mType.ToString() + ",path: " + mFilePath);
                    }
                    else
                    {
                        Helper.LogError("LoadTask OnLoadCallback:Error caused by null UnityEngine.Object instance,type: " + mType.ToString() + ",path: " + mFilePath);
                    }
                    if (mLoadTasks != null && mLoadTasks.Count > 0)
                    {
                        for (int i = 0; i < mLoadTasks.Count; i++)
                        {
                            LoadTask task = mLoadTasks[i];
                            if (task != null)
                            {
                                task.Callback(null);
                            }
                        }
                    }
                    mLoadTasks.Clear();
                    return;
                }
                OriginalObjInfo info = null;

                if (mType == typeof(Texture) || mType == typeof(Texture2D) || mType == typeof(Texture3D))
                {
                    info = new OriginalObjInfo(varObj, mFilePath);
                }
                else
                {
                    info = new OriginalObjInfo(UnityEngine.Object.Instantiate(varObj), mFilePath);
                }
                info.pObjFlag = pObjFlag;
                GameObjPool.GetSingleton().AddOriginalObjInfo(info);
                if (mLoadTasks != null && mLoadTasks.Count > 0)
                {
                    for (int i = 0; i < mLoadTasks.Count; i++)
                    {
                        LoadTask task = mLoadTasks[i];
                        if (task != null)
                        {
                            task.Callback(info.GetCacheObj(task.mObjFlag));
                        }
                    }
                }
            }
Example #4
0
        /// <summary>
        /// 将加载好的对象加入对象池中
        /// </summary>
        /// <param name="varInfo"></param>
        /// <returns></returns>
        public bool AddOriginalObjInfo(OriginalObjInfo varInfo)
        {
            if (varInfo == null || string.IsNullOrEmpty(varInfo.mFilePath))
            {
                return(false);
            }
            OriginalObjInfo info = null;

            if (mPoolObjs.TryGetValue(varInfo.mFilePath, out info))
            {
                return(false);
            }
            mPoolObjs.Add(varInfo.mFilePath, varInfo);
            return(true);
        }
Example #5
0
        /// <summary>
        /// 获取对象池中的某一缓存对象,varIsUseOriObj:是否获取源对象
        /// </summary>
        /// <param name="varFilePath"></param>
        /// <returns></returns>
        public CacheObjInfo GetCacheObjInfo(string varFilePath, ObjFlag varResult)
        {
            if (string.IsNullOrEmpty(varFilePath))
            {
                Helper.LogError("GameObjPool GetCacheObjInfo: Error caused by null varFilePath");
                return(null);
            }
            OriginalObjInfo oriInfo = GetOriginalObjInfo(varFilePath);

            if (oriInfo == null)
            {
                Helper.LogError("GameObjPool GetCacheObjInfo: Error caused by null OriginalObjInfo insatance,filePath: " + varFilePath);
                return(null);
            }
            return(oriInfo.GetCacheObj(varResult));
        }
Example #6
0
        /// <summary>
        /// 获取对象池中的某一源对象
        /// </summary>
        /// <param name="varFilePath"></param>
        /// <returns></returns>
        public OriginalObjInfo GetOriginalObjInfo(string varFilePath)
        {
            if (string.IsNullOrEmpty(varFilePath))
            {
                Helper.LogError("GameObjPool GetOriginalObjInfo: Error caused by null varFilePath");
                return(null);
            }
            if (mPoolObjs == null || mPoolObjs.Count == 0)
            {
                Helper.LogError("GameObjPool GetOriginalObjInfo: Error caused by null mPoolObjs || mPoolObjs.Count = 0");
                return(null);
            }
            OriginalObjInfo info = null;

            mPoolObjs.TryGetValue(varFilePath, out info);
            return(info);
        }
Example #7
0
        /// <summary>
        /// 对象池中是否存在某个对象的缓存
        /// </summary>
        /// <param name="varFilePath"></param>
        /// <returns></returns>
        public bool IsExistObjInfo(string varFilePath)
        {
            if (string.IsNullOrEmpty(varFilePath))
            {
                return(false);
            }
            if (mPoolObjs == null || mPoolObjs.Count == 0)
            {
                return(false);
            }
            OriginalObjInfo info = null;

            if (mPoolObjs.TryGetValue(varFilePath, out info))
            {
                return(true);
            }
            return(false);
        }
Example #8
0
 public CacheObjInfo(UnityEngine.Object varObj, OriginalObjInfo varOriginalObjInfo)
 {
     bLock            = false;
     mObj             = varObj;
     mOriginalObjInfo = varOriginalObjInfo;
     if (varObj != null && mOriginalObjInfo != null)
     {
         if (varObj.GetType() == typeof(GameObject))
         {
             GameObject tmpObj = varObj as GameObject;
             if (tmpObj == null)
             {
                 return;
             }
             mHolder      = tmpObj.transform;
             mHolder.name = "[Lock: " + bLock + "] HashCode: " + mObj.GetHashCode() + " (" + Helper.GetFileNameFromFullPath(mOriginalObjInfo.mFilePath) + ")";
         }
         else
         {
             mHolder = new GameObject("[Lock: " + bLock + "] HashCode: " + mObj.GetHashCode() + " (" + Helper.GetFileNameFromFullPath(mOriginalObjInfo.mFilePath) + ")").transform;
         }
     }
     varOriginalObjInfo.AddToHolder(this);
 }