public override void OnInspectorGUI() { base.OnInspectorGUI(); if (GUILayout.Button("TestPlay")) { SEState sEState = target as SEState; sEState.TestPlay(); } }
/// <summary> /// 再生メソッド /// </summary> void SEPlay(SEState sState) { switch (sState) { case SEState.SE1: GetComponent <AudioSource>().clip = SE[0]; break; case SEState.SE2: GetComponent <AudioSource>().clip = SE[1]; break; case SEState.SE3: GetComponent <AudioSource>().clip = SE[2]; break; } GetComponent <AudioSource>().Play(); }
/// <summary> /// 再生終了コルーチン /// </summary> /// <param name="time"></param> /// <returns></returns> IEnumerator SECourutin(ButtonState bState, SEState sState) { SEPlay(sState); yield return(new WaitForSecondsRealtime(0.5f)); // 各関数で分岐 switch (bState) { case ButtonState.Retry: // もう一度 // 現在のシーンがリザルトまたはゲームオーバーのシーンなら if (SceneManager.GetActiveScene().name == SceneGameOrver || SceneManager.GetActiveScene().name == SceneResult) { //Fade_Downオブジェクト生成 GameObject retry_Obj = Instantiate(Fade_Down) as GameObject; retry_Obj.transform.parent = GameObject.Find("FadePoint").transform; // FadePointを探してその子に設定 StartCoroutine("VolumeDown_Courutin"); // BGMフェード // アルファ値を0まで下げる while (Panel_UI.GetComponent <CanvasGroup>().alpha > 0) { Panel_UI.GetComponent <CanvasGroup>().alpha -= downAlpha; yield return(null); } } // それ以外なら else { if (Time.timeScale <= 0) { Time.timeScale = 1; // タイムスケールを元に戻す } player.GetComponent <StarFishOriginal>().RemoveGravity(); // 海星の重力を消す GameObject retry_Obj = Instantiate(Fade_Down) as GameObject; // Fade_Dwonオブジェクト生成 retry_Obj.transform.parent = GameObject.Find("FadePoint").transform; // FadePointを探してその子に設定 GameObject.Find("SoundManager").GetComponent <SoundManager>().BGM_Fade(); // 指定のUIのアルファ値が0になるまで回す while (PauseUI_Panel.GetComponent <CanvasGroup>().alpha > 0 && Pause_UI.GetComponent <CanvasGroup>().alpha > 0) { PauseUI_Panel.GetComponent <CanvasGroup>().alpha -= downAlpha; Pause_UI.GetComponent <CanvasGroup>().alpha -= downAlpha; yield return(null); } } yield return(new WaitForSecondsRealtime(2)); // 前回プレイしたシーンを読み込み SceneManager.LoadScene(GameDirector.Instance.GetSceneName); break; case ButtonState.Play: // 再開 Time.timeScale = 1; break; case ButtonState.YES: if (Time.timeScale <= 0) { Time.timeScale = 1; } player.GetComponent <StarFishOriginal>().RemoveGravity(); // 海星の重力を消す GameObject yes_Obj = Instantiate(Black_Fade) as GameObject; yes_Obj.transform.parent = GameObject.Find("FadePoint").transform; GameObject.Find("SoundManager").GetComponent <SoundManager>().BGM_Fade(); // 指定のUIのアルファ値が0になるまで回す while (PauseUI_Panel_Yes.GetComponent <CanvasGroup>().alpha > 0 && Pause_UI.GetComponent <CanvasGroup>().alpha > 0) { PauseUI_Panel_Yes.GetComponent <CanvasGroup>().alpha -= downAlpha; Pause_UI.GetComponent <CanvasGroup>().alpha -= downAlpha; yield return(null); } yield return(new WaitForSecondsRealtime(2.0f)); SceneManager.LoadScene(SceneMenu); break; case ButtonState.Menu: // メニュー GameObject menu_Obj = Instantiate(Black_Fade) as GameObject; // Black_Fade生成 menu_Obj.transform.parent = GameObject.Find("FadePoint").transform; // FadePointをさがしてその子に設定 StartCoroutine("VolumeDown_Courutin"); // BGMフェード while (Panel_UI.GetComponent <CanvasGroup>().alpha > 0) { Panel_UI.GetComponent <CanvasGroup>().alpha -= downAlpha; yield return(null); } yield return(new WaitForSecondsRealtime(2.0f)); SceneManager.LoadScene(SceneMenu); break; case ButtonState.Next: // 次 GameObject next_Obj = Instantiate(Fade_Down) as GameObject; next_Obj.transform.parent = GameObject.Find("FadePoint").transform; // FadePointを探してその子に設定 StartCoroutine("VolumeDown_Courutin"); // BGMフェード while (Panel_UI.GetComponent <CanvasGroup>().alpha > 0) { Panel_UI.GetComponent <CanvasGroup>().alpha -= downAlpha; Debug.Log(Panel_UI.GetComponent <CanvasGroup>().alpha); yield return(null); } yield return(new WaitForSecondsRealtime(2.0f)); SceneManager.LoadScene(STAGE_NAME + GameDirector.Instance.GetSceneNumber.ToString()); break; case ButtonState.Title: // タイトルへ GameObject title_Obj = Instantiate(Black_Fade) as GameObject; title_Obj.transform.parent = GameObject.Find("FadePoint").transform; StartCoroutine("VolumeDown_Courutin"); // BGMフェード while (Panel_UI_Title.GetComponent <CanvasGroup>().alpha > 0) { Panel_UI_Title.GetComponent <CanvasGroup>().alpha -= downAlpha; Debug.Log(Panel_UI.GetComponent <CanvasGroup>().alpha); yield return(null); } yield return(new WaitForSecondsRealtime(2.0f)); SceneManager.LoadScene("SpecialResult"); break; } Time.timeScale = 1; }