Пример #1
0
    public static IEnumerator LoadMatch(byte[] stageInfo)
    {
        IEnumerator itor = AnimationLoader.LoadStageSceneAnimation(RoomData.PlayMusciInfo.m_strMusicSource, RoomData.PlaySongMode);

        while (itor.MoveNext())
        {
            yield return(null);
        }

        CSceneInfo sceneInfo = StaticData.SceneDataMgr.GetSceneByID((byte)RoomData.PlayScene);

        if (sceneInfo != null)
        {
            itor = SceneLoader.LoadStageScene(sceneInfo.m_strSceneStage);
            while (itor.MoveNext())
            {
                yield return(null);
            }
        }

        StageScene stageScene = null;

        if (CSceneBehaviour.Current != null)
        {
            stageScene = CSceneBehaviour.Current.gameObject.AddComponent <StageScene>();
            CSceneBehaviour.Current.CurScene = stageScene;
        }

        itor = UIMgr.ShowUIAsync(UIFlag.ui_taigu, null);
        while (itor.MoveNext())
        {
            yield return(null);
        }

        itor = CMatchBase.CurrentMatch.PrepareMatch(true, true, stageInfo);
        while (itor.MoveNext())
        {
            yield return(null);
        }

        if (stageScene != null)
        {
            stageScene.gameObject.SendMessage("PlayerEnterScene", true, SendMessageOptions.RequireReceiver);
        }

        CMatchBase.CurrentMatch.BeginMatch();
    }