示例#1
0
    /// <summary>
    /// メインシーン遷移の際に使用する
    /// </summary>
    /// <param name="_sceneName">シーン名</param>
    /// <param name="_stage">ステージ名</param>
    /// <returns></returns>
    public IEnumerator SceneTransition(string _sceneName, STAGE _stage)
    {
        // フェードイン
        for (float i = 1.1f; i > 0.0f; i -= 0.02f)
        {
            fadeMaterial.SetFloat("_Radius", i);
            yield return(null);
        }

        // シーン遷移
        async = SceneManager.LoadSceneAsync(_sceneName);
        while (!async.isDone)
        {
            yield return(null);
        }
        gameMgr.CreateStage(_stage);                            // ステージを生成
        yield return(new WaitForSeconds(1.0f));                 // 1秒間待つ

        // ワイプを表示する
        for (float i = 0.0f; i < 0.21f; i += 0.01f)
        {
            fadeMaterial.SetFloat("_Radius", i);
            yield return(null);
        }

        yield return(new WaitForSeconds(1.0f));                  // 1秒間待つ

        // フェードアウト
        for (float i = 0.2f; i < 1.1f; i += 0.06f)
        {
            fadeMaterial.SetFloat("_Radius", i);
            yield return(null);
        }

        GameMgr.IsLock = false;
    }