Ejemplo n.º 1
0
        //public void Init()
        //{
        //    ResourceLoadParam param = new ResourceLoadParam();
        //    string fileName = Helper.GetFileNameFromFullPath(GAMEOBJPOOL_CONFIG_FILEPATH);
        //    param.keyID = GAMEOBJPOOL_CONFIG_FILEPATH;
        //    param.name = fileName;
        //    ResourceManager.GetSingleton().LoadAssetBundle(GAMEOBJPOOL_CONFIG_FILEPATH, fileName, typeof(TextAsset), OnLoadConfigCallback, param);
        //}

        /// <summary>
        /// 加载/获得 某个对象物体
        /// </summary>
        /// <param name="varTask"></param>
        public void LoadObj(LoadTask varTask)
        {
            if (varTask == null)
            {
                Helper.LogError("GameObjPool LoadObj:Error caused by null LoadTask instance");
                return;
            }
            if (varTask.mType == typeof(Texture) || varTask.mType == typeof(Texture2D) || varTask.mType == typeof(Texture3D))
            {
                varTask.mObjFlag = ObjFlag.UseOriObj;
            }
            if (string.IsNullOrEmpty(varTask.mFilePath))
            {
                Helper.LogError("GameObjPool LoadObj:Error caused by null LoadTask.mFilePath");
                return;
            }
            if (IsExistObjInfo(varTask.mFilePath))
            {
                varTask.Callback(GetCacheObjInfo(varTask.mFilePath, varTask.mObjFlag));
            }
            else
            {
                if (IsInLoading(varTask.mFilePath) == false)
                {
                    TaskQueue queue = new TaskQueue(varTask.mFilePath, varTask);
                    AddTaskQueue(queue);
                    queue.Excute();
                }
                else
                {
                    AddLoadTaskToQueue(varTask);
                }
            }
        }
Ejemplo n.º 2
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));
                        }
                    }
                }
            }