public IEnumerator LoadSceneAsync(string sceneName, ResPackge.AsyncLoadData data, Action callback = null) { bool isLoaded = false; string szNm = Path.GetFileNameWithoutExtension(sceneName).ToLower(); if (mPackDic != null) { ResPackItm itm = null; if (mResDic.TryGetValue(szNm + ".unity", out itm)) { ResPackge pck = null; if (mPackDic.TryGetValue(itm.mPack, out pck)) { IEnumerator e = pck.LoadPackageAsync(data); while (true) { e.MoveNext(); if (data.IsFinish) { break; } yield return(e.Current); } isLoaded = pck.LoadLevel(sceneName); AddDelayCleanPackage(pck); } } } data.IsFinish = true; if (!isLoaded) // 也许没有打包或用Unity打包 { string unitySceneName = Path.GetFileNameWithoutExtension(sceneName); Application.LoadLevel(unitySceneName.ToLower()); } if (callback != null) { callback(); } }