public static void RunScene(EnumScene p_Scene) { BaseScene scene = CreateScene(p_Scene); if (null != scene) { scene.Run(); } }
private static BaseScene CreateScene(EnumScene p_Scene) { switch (p_Scene) { case EnumScene.Start: return new StartScene(); case EnumScene.Question: return new QuestionScene(); case EnumScene.Setting: return new SettingScene(); case EnumScene.WordList: return new WordListScene(); case EnumScene.AddWord: return new AddWordScene(); default: return null; } }
private static BaseScene CreateScene(EnumScene p_Scene) { switch (p_Scene) { case EnumScene.Start: return(new StartScene()); case EnumScene.Question: return(new QuestionScene()); case EnumScene.Setting: return(new SettingScene()); case EnumScene.WordList: return(new WordListScene()); case EnumScene.AddWord: return(new AddWordScene()); default: return(null); } }
/// <summary> /// 跳转任务场景 /// </summary> /// <param name="taskSceneTag"></param> public static async void SkipTaskScene(TaskSceneTag taskSceneTag) { EnumScene currScene = SceneManagerComponent._instance._currSceneTage; //taskSceneTag = TaskSceneTag.ManorFriends; switch (taskSceneTag) { case TaskSceneTag.None: Debug.Log("没有需要跳转的场景"); break; case TaskSceneTag.SignIn: Debug.Log("没有需要跳转的场景"); break; case TaskSceneTag.GetFavorability: Debug.Log("没有需要跳转的场景"); break; case TaskSceneTag.Manor: case TaskSceneTag.DressUpTheManor: case TaskSceneTag.ManorFriends: case TaskSceneTag.Deal: switch (currScene) { case EnumScene.Empty: await StaticData.ToManorSelf(); break; case EnumScene.TestPlant: break; case EnumScene.Manor: break; case EnumScene.Zillionaire: await StaticData.RichManReturnToManor(); break; case EnumScene.Party: await StaticData.ToManorSelf(); break; } switch (taskSceneTag) { case TaskSceneTag.DressUpTheManor: await UniTask.Delay(500); UIManorComponent uiManaorCom = UIComponent.GetComponentHaveExist <UIManorComponent>(UIType.UIManor); if (uiManaorCom != null) { uiManaorCom.uiManorAnim.PlayAnimOpenDecorate(); } break; case TaskSceneTag.ManorFriends: StaticData.OpenFriend(true); break; case TaskSceneTag.Deal: //打开订单 StaticData.EnterUIDeal(); break; } break; case TaskSceneTag.ZillionaireSetout: //功能是否开启 if (!StaticData.IsOpenFunction(10011)) { return; } else { UICameraManager._instance.SetDefault(); UIComponent.RemoveUI(UIType.UIFriend); UIComponent.RemoveUI(UIType.Warehouse); UIComponent.RemoveUI(UIType.UIShop); UIComponent.RemoveUI(UIType.UIManor); await StaticData.OpenMonopoly(); StaticData.DataDot(Company.Cfg.DotEventId.EnterRichMan); } break; case TaskSceneTag.Friend: case TaskSceneTag.ChapterList: case TaskSceneTag.ThrobbingCasting: switch (currScene) { case EnumScene.Empty: break; case EnumScene.TestPlant: break; case EnumScene.Manor: break; case EnumScene.Zillionaire: await StaticData.ToManorSelf(); break; case EnumScene.Party: break; default: break; } switch (taskSceneTag) { case TaskSceneTag.Warehouse: await StaticData.OpenWareHouse(); break; case TaskSceneTag.PropWarehouse: await StaticData.OpenWareHouse(); break; case TaskSceneTag.Friend: await StaticData.OpenFriend(false); break; case TaskSceneTag.ZillionaireSetout: break; case TaskSceneTag.ChapterList: //章节是否开启 if (!StaticData.IsOpenFunction(10007)) { return; } await StaticData.OpenChapterUI(); break; case TaskSceneTag.ThrobbingCasting: //心动时刻 if (!StaticData.IsOpenFunction(10015)) { return; } await StaticData.OpenImpulseUI(); break; case TaskSceneTag.Shop: await StaticData.OpenShopUI(0); break; } break; case TaskSceneTag.Shop: await StaticData.OpenShopUI(0); break; case TaskSceneTag.Warehouse: await StaticData.OpenWareHouse(); break; case TaskSceneTag.PropWarehouse: await StaticData.OpenWareHouse(2); break; case TaskSceneTag.FruitWarehouse: await StaticData.OpenWareHouse(1); break; } }
/// <summary> /// /// </summary> /// <param name="sceneType"></param> /// <param name="isCloseLoadingAfter">为true需要自己关闭进度条</param> /// <returns></returns> public async Task ChangeSceneAsync(EnumScene sceneType, bool isCloseLoadingAfter = false) { //加载进度条 await UIComponent.CreateUIAsync(UIType.UISceneLoading, isTopCanvas : true); uISceneLoadingComponent.Reset(); //关闭聊天相关界面 ChatTool.CloseChat(); var scencePath = EnumScene.Empty.ToString(); _currSceneTage = sceneType; //加载空场景 scencePath = "Scenes/" + scencePath; SceneManager.LoadScene(scencePath); var bundleType = sceneType.ToString(); if (sceneType != EnumScene.Empty)//空场景为退出到大厅 { List <string> bundleNameList = new List <string>(); if (preLoadMap.ContainsKey(sceneType)) { bundleNameList.AddRange(preLoadMap[sceneType]); } //加上自己的场景ab包 var sceneBundleName = ABManager.GetBundleNameByAssetNameAndType(sceneType.ToString(), typeof(GameObject)); bundleNameList.Add($"{sceneBundleName}"); List <string> allBundleNameList = new List <string>(); foreach (var bundleName in bundleNameList) { string[] dependencies = ResourcesHelper.GetSortedDependencies(bundleName.ToLower()); if (dependencies != null) { foreach (var item in dependencies) { if (allBundleNameList.Contains(item)) { continue; } allBundleNameList.Add(item); } } } ResourcesComponent resourcesComponent = ResourcesComponent.instance; for (int i = 0; i < allBundleNameList.Count; i++) { await resourcesComponent.LoadOneBundleAsync(allBundleNameList[i], (real) => UpdateProgress(i, allBundleNameList.Count, real, allBundleNameList[i])); } } await AddSceneAsyncTask(bundleType, LoadSceneMode.Single); //await StaticData.CreateChatMini(); if (isCloseLoadingAfter == false) { UIComponent.HideUI(UIType.UISceneLoading); } }