void Update() { // 检查场景是否加载完成 if (this.sceneLoader != null) { if (this.sceneLoader.IsDone()) { SceneLoader loader = this.sceneLoader; #if ASSETBUNDLE this.loadedAssetBundleSceneLoaderDict[loader.SceneName] = this.sceneLoader as AssetBundleSceneLoader; #endif this.sceneLoader = null; if (loader.LoadDoneCallback != null) { loader.LoadDoneCallback(loader.SceneName); } } else { if (this.sceneLoader.LoadUpdateCallback != null) { this.sceneLoader.LoadUpdateCallback(this.sceneLoader.SceneName, this.sceneLoader.GetProgress()); } } } // 遍历正在加载的资源,检测是否已经加载完成 foreach (KeyValuePair <string, IResLoader> resLoaderKV in this.loadingResDict) { string resName = resLoaderKV.Key; IResLoader loader = resLoaderKV.Value; if (loader.IsDone()) { //Debug.Log(string.Format("{0} done at {1}", resName, Time.frameCount)); this.loadedResList.Add(resName); } } // 规避遍历字典删除元素的语法,在加载完成后可能会再次启动加载 for (int i = 0; i < this.loadedResList.Count; ++i) { string resName = this.loadedResList[i]; IResLoader loader = this.loadingResDict[resName]; #if ASSETBUNDLE // 加入到缓存的AssetBundle列表 AssetBundleLoader abLoader = loader as AssetBundleLoader; this.loadedAssetBundleLoaderDict[resName] = abLoader; #endif if (loader.LoadDoneCallback != null) { loader.LoadDoneCallback(resName, loader.GetResObj()); } this.loadingResDict.Remove(resName); } this.loadedResList.Clear(); }