private void LoadQueue() { if (currentNum >= count) { RunCallBack(); Destroy(); return; } PreloadResourcesDataGenerate da = queueRes[currentNum]; currentNum++; //Debug.Log("da.m_key " + da.m_key); try { Type resType = ReflectionUtils.GetTypeByTypeFullName(da.m_ResType); // object loadRes = AssetsPoolManager.Load(da.m_key); AssetsPoolManager.LoadAsync(da.m_key, resType, (LoadState loadState, object loadRes) => { if (loadState.isDone) { if (loadRes != null) { if (loadRes is GameObject) { GameObject prefab = (GameObject)loadRes; List <GameObject> resList = new List <GameObject>(); for (int i = 0; i < da.m_instantiateNum; i++) { GameObject obj = GameObjectManager.CreateGameObjectByPool(prefab); resList.Add(obj); } foreach (var obj in resList) { GameObjectManager.DestroyGameObjectByPool(obj, !da.m_createInstanceActive); } } else { AssetsPoolManager.DestroyByPool(da.m_key); } } else { if (loadRes == null) { Debug.LogError("Error: 预加载失败 key:" + da.m_key); } } RunCallBack(); LoadQueue(); } }); } catch (Exception e) { Debug.LogError(e); LoadQueue(); } }