public void OpenModule(Modules module) { if (IsRunning(module)) { GideonBase.SynObj.SpeakAsync("This application is already running !"); return; } switch (module) { case Modules.MediaPlayer: MediaPlayerObj = new MediaPlayerUI(); ModuleTableObj.Add(module, MediaPlayerObj); MediaPlayerObj.Show(); //MediaPlayerObj.Visibility = System.Windows.Visibility.Hidden; break; case Modules.WeatherForecast: WeatherForecastObj = new WeatherForecastUI(); ModuleTableObj.Add(module, WeatherForecastObj); WeatherForecastObj.Show(); break; case Modules.News: NewsObj = new NewsUI(); ModuleTableObj.Add(module, NewsObj); NewsObj.Show(); break; case Modules.Gallery: GalleryObj = new GalleryUserInterface(); ModuleTableObj.Add(module, GalleryObj); GalleryObj.Show(); break; } }
/// <summary> /// ニュース演出をする際にどのNewsUIを使うのか /// を決定するメソッド /// </summary> /// <param name="newsMode"></param> /// <param name="player">プレイヤーが脱落したりゴールしたときに使うキャラクター情報</param> /// <returns></returns> private void ShowNewsUI(NEWSMODE newsMode, GameObject player) { // どのNewsUIを使うか決める for (int i = 0; i < newsUIs.Count; i++) { NewsUI newsUI = newsUIs[i].GetComponent <NewsUI>(); // 使っていないなら if (newsUI.IsIdle) { targetNewsUIObj = newsUIs[i]; break; } } // エラーチェック if (targetNewsUIObj == null) { Debug.Log("使えるNewsUIがありません"); return; } var targetNewsUI = targetNewsUIObj.GetComponent <NewsUI>(); var targetNewsUIEntry = targetNewsUIObj.GetComponent <NewsUIEntry>(); // 表示するニュース演出の種類によって呼び出す関数を変える switch (newsMode) { case NEWSMODE.WIN: case NEWSMODE.GOAL: case NEWSMODE.DEAD: // どのプレイヤーが死んだかも伝える targetNewsUIEntry.playerNo = player.GetComponent <Player>().playerNO; targetNewsUIEntry.newsMode = newsMode; break; case NEWSMODE.RAIN: case NEWSMODE.START: targetNewsUIEntry.newsMode = newsMode; break; } // EntryStateにチェンジ targetNewsUI.EntryStart(); }
// Update is called once per frame void Update() { // 表示するニュース演出があるなら if (newsList.Count > 0) { List <NewsUI> useNewsUIs = new List <NewsUI>(); // 今いくつのNewsUIが表示されているのかチェック for (int l = 0; l < newsUIs.Count; l++) { // 今表示しているNewsUIを格納するリスト NewsUI newsUI = newsUIs[l].GetComponent <NewsUI>(); if (!newsUI.IsIdle) { showNewsUICount++; useNewsUIs.Add(newsUI); } if (newsUI.isMoveingUnder) { moveNewsUICount++; } } // ニュース演出が3つ以上出ていないかつ一つも動いていないなら if (showNewsUICount < 3 && moveNewsUICount == 0) { // 今表示しているNewsUiを下に下げる for (int i = 0; i < useNewsUIs.Count; i++) { useNewsUIs[i].MoveUnderInit(); } // ニュース演出を表示 ShowNewsUI(newsList[0].newsMode, newsList[0].character); // 表示したニュース演出の情報はリストから削除 newsList.Remove(newsList[0]); } // チェックし終わるごとにカウントをリセット showNewsUICount = 0; moveNewsUICount = 0; useNewsUIs.Clear(); } }
public void CloseModule(Modules module) { if (!IsRunning(module)) { GideonBase.SynObj.SpeakAsync("This application is already close or not in running state !"); return; } switch (module) { case Modules.MediaPlayer: MediaPlayerObj.Close(); MediaPlayerObj = null; break; case Modules.WeatherForecast: WeatherForecastObj.Close(); WeatherForecastObj = null; break; case Modules.News: NewsObj.Close(); NewsObj = null; break; case Modules.Gallery: GalleryObj.Close(); GalleryObj = null; break; } GC.SuppressFinalize(ModuleTableObj[module]); GC.Collect(); ModuleTableObj[module] = null; ModuleTableObj.Remove(module); }
private void Awake() { newsUI = GetComponent <NewsUI>(); ReadTextParameter(); }