/**加载完成处理**/ private void loadCompleteHandler(string url, object[] args = null) { if (!loadingList.ContainsKey(url)) { return; } IList <LoadItem> list = loadingList[url]; if (binLoadMgr.isTrace) { Log.info(this, "-loadCompleteHandler() url:" + url + " 加载成功,即将回调:" + (list != null ? list.Count : 0) + " 个函数!"); } removeProgress(url); loadingList.Remove(url); LoadItem item = null; while (list.Count > 0) { item = list[0]; list.Remove(item); item.call(); item.dispose(); item = null; } }
private IEnumerator startLoadScene(uint mapId, string url) { try { print("****异步加载场景特效资源, mapId,url = " + mapId + ", " + url); isLoadingScene = true; Log.info(this, "-startLoadScene() 异步加载场景,场景uri: " + url); loadSceneOpt = Application.LoadLevelAsync(url); yield return(loadSceneOpt); //场景资源预只会预加载一次 if (!scenePreloadHistory.Contains(mapId)) { Log.warin(this, "-startLoadScene() 异步加载场景特效资源" + mapId); scenePreloadHistory.Add(mapId); int[] subTypeList = { PRTypeConst.ST_SKILL, PRTypeConst.ST_SOUND }; for (int i = 0; i < subTypeList.Length; i++) { IList <SysReadyLoadVo> preloadList = BaseDataMgr.instance.GetScenePreLoadList(mapId, subTypeList[i]); if (preloadList.Count > 0) { IPreloader loader = PreloaderFactory.Instance.GetPreLoader(preloadList[0]); Task t = CoroutineManager.StartCoroutine(loader.PreloadResourceList(preloadList)); yield return(t.Routine); } } } //Log.info (this, "-startLoadScene() 加载完成,调用加载成功回调函数" + loadSceneOpt.progress); if (loadSceneItem != null) { loadSceneItem.call(); } } finally { isLoadingScene = false; } // Vector3 cameraPos = GameObject.Find ("main_camera").transform.position; // GameObject.Find ("main_camera").transform.position = new Vector3 (MeVo.instance.x, cameraPos.y, cameraPos.z); }