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(); }