예제 #1
0
    void Update()
    {
        if (_NextSceneID != SceneID.NULL && _AsyncObject == null)
        {
            //加载场景
            AsyncLoadScene(_NextSceneID);
            Debug.Log("START LOAD SCENE" + _NextSceneID.ToString());
        }
        //异步加载场景OK
        if (_AsyncObject != null && _AsyncObject.isDone && LoadedReady)
        {
            SceneTransitionData sd = GetSceneData(_NextSceneID);

            if (sd.CurrentSceneID == _LoadedSceneID)
            {
                Debug.Log("Scene " + sd.SceneName + " AsyncLoaded.");
                _NextSceneID   = SceneID.NULL;
                _LoadedSceneID = SceneID.NULL;
                _CurrSceneID   = sd.CurrentSceneID;
                _AsyncObject   = null;
            }
            else
            {
                Debug.Log("Scene Loading AsyncLoaded. Load Next Scene");
                AsyncLoadScene(_NextSceneID);
            }
        }
    }
예제 #2
0
    /// <summary>
    /// 次のシーンに行かせる処理です。
    /// 切り替えたいシーンを引数で設定してください。
    /// </summary>
    /// <param name="nextScene"></param>
    public void ChangeScene(SceneID nextScene)
    {
        // 例外処理 ---------------------------------------------//

        if (nextScene == SceneID.MAX)
        {
            Debugger.LogError("そんなシーンはありません。");
        }

        if (nextScene == nowScene)
        {
            Debugger.LogWarning("同じシーンが設定されています。");
        }

        // -------------------------------------------------------//

        // 次のシーンを表示
        sceneList[(int)nextScene].behaviour.gameObject.SetActive(true);

        // 現在のシーンを非表示
        sceneList[(int)nowScene].behaviour.gameObject.SetActive(false);

        // 現在のシーンの終了処理
        sceneList[(int)nowScene].behaviour.Finish();

        nowScene = nextScene;

        Debugger.Log(">> ChangeScene");
        Debugger.Log(nowScene.ToString());
    }
예제 #3
0
    public static void SetupScene(SceneID id)
    {
        if (singleton == null)
        {
            Debug.LogError("SceneManager_VS.SetupScene(" + id.ToString() + ") called, but singleton was NULL! Aborting.");
            return;
        }

        singleton._SetupScene(id);
    }
예제 #4
0
        Scene ISceneLoader.LoadScene(SceneID map, bool forceReload)
        {
            if (forceReload)
            {
                loadedScenes.Remove(map.ToString());
            }

            QuickGameScene ret = loadedScenes.TryGet(map.ToString());

            if (ret != null)
            {
                SetIntersceneActorPositions(ret);
                LastScene = ret;
                QuickGameScene.Current = ret;
                return(ret);
            }

            if (MasterTemplate == null)
            {
                MasterTemplate = new MapTemplate("map", new Vector2(16, 16));
            }

            if (map == Scenes.Intro)
            {
                return(new IntroScene());
            }

            ret = new QuickGameScene(map, MasterTemplate);

            SetIntersceneActorPositions(ret);

            DebugText.NewTextPosition = new Vector2(50, 50);
            LastScene = ret;

            if (!forceReload)
            {
                loadedScenes.Add(map.ToString(), ret);
            }

            return(ret);
        }
예제 #5
0
 protected virtual void EnterReconnectState(fsm.State _from, fsm.State _to, fsm.Event _event)
 {
     LynSdkManager.Instance.ReportConnectionLose(SceneID.ToString(), "游戏过程中,Socket的连接装备变为false,可能是服务端主动断开或者其他网络异常!");
     hasConnectedQueueServer = false;
     lastConnectState        = false;
     failCount    = 0;
     hasNetClosed = false;
     if (GameCenter.sceneMng != null)
     {
         GameCenter.sceneMng.CleanAll();
     }
     GameCenter.instance.IsReConnecteding = true;
     NetMsgMng.ConectClose();
     startConnectTime            = Time.time;
     startConnectTimeForConetWnd = Time.time;
     GameCenter.uIMng.SwitchToUI(GUIType.AUTO_RECONNECT);
     GameCenter.uIMng.ReleaseGUI(GUIType.PANELLOADING);
 }
예제 #6
0
    public static void ChangeScene(SceneID sceneID)
    {
        var lastSceneID = GetSceneID();

        if (lastSceneID == sceneID)
        {
            GameLog.Log("[ChangeScene]current scene is the target... sceneID:" + sceneID.ToString());
            return;
        }

        if (IsLoading())
        {
            GameLog.Log("[ChangeScene]current scene is loading....:" + lastSceneID.ToString() + sceneID.ToString());
            return;
        }

        // 打开遮羞布,过渡场景,或者过渡UI
        ExitLastScene();

        //新场景的加载
        EnterCurrentScene(sceneID);

        // 场景加载回调关闭遮羞布
    }
예제 #7
0
 public static void Load(SceneID scene)
 {
     SceneManager.LoadScene(scene.ToString());
 }
예제 #8
0
        private Stream GetFileStream(SceneID sceneID)
        {
            //todo, use resource
            var path = @"C:\Users\Miko\Documents\GitHub\Simple2DGame\QuickGame1\Content\Maps\" + sceneID.ToString() + ".map";

            return(File.Open(path, FileMode.OpenOrCreate));
        }
예제 #9
0
 /// <inheritdoc/>
 public override string ToString()
 {
     return(SceneID.ToString());
 }
예제 #10
0
 //------------------------------------------------------------------------------------
 // 指定シーンのロード
 public void LoadScene()
 {
     OpenEditorScene(loadScene.ToString());
 }