//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); } } }
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)); } } } }