Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        private IEnumerator LoadSceneAsset(uint mapId, string key)
        {
            //场景资源预只会预加载一次
            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]);// 返回特效或者音效 实例
                        foreach (SysReadyLoadVo preload in preloadList)
                        {
                            IList <SysReadyLoadVo> list = new List <SysReadyLoadVo>();
                            list.Add(preload);
                            yield return(StartCoroutine(loader.PreloadResourceList(list))); // 主要是加载 特效和音效

                            Singleton <StartLoadingView> .Instance.PreLoadedNum += list.Count;
                        }
                    }
                }
            }
            else
            {
                Singleton <StartLoadingView> .Instance.PreLoadedNum += Singleton <StartLoadingView> .Instance.PreLoadNum;
            }

            //预加载怪物,前面已经获取到加载列表了
            if (MonsterMgr.Instance.PreMonloadList != null &&
                MonsterMgr.Instance.PreMonloadList.Count > 0)
            {
                yield return(StartCoroutine(MonsterMgr.Instance.PreloadMonsterList()));
            }

            callBack(key, null);
        }
Esempio n. 3
0
 public RoomHub(GoogleService googleService, IPreloader preloadService, RoomSubscriptionService roomSubscriptionService)
 {
     _google           = googleService;
     _preloader        = preloadService;
     _roomSubscription = roomSubscriptionService;
 }