Пример #1
0
 public static void RunScene(EnumScene p_Scene)
 {
     BaseScene scene = CreateScene(p_Scene);
     if (null != scene)
     {
         scene.Run();
     }
 }
Пример #2
0
        public static void RunScene(EnumScene p_Scene)
        {
            BaseScene scene = CreateScene(p_Scene);

            if (null != scene)
            {
                scene.Run();
            }
        }
Пример #3
0
 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;
     }
 }
Пример #4
0
        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);
            }
        }
Пример #5
0
    /// <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;
        }
    }
Пример #6
0
    /// <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);
        }
    }