예제 #1
0
        /// <summary>
        /// Awakeを継承する際は、最後にbase.Awake()を呼び出すこと。
        /// </summary>
        public void Awake()
        {
#if UNITY_EDITOR
            if (SceneChanger.IsBooting)
            {
                return;
            }
#endif
            SceneChanger.AwakeDone(this);
        }
예제 #2
0
        void updateTitle()
        {
            if (GameParams.IsActionAndWaterButtonDown)
            {
                SoundController.Play(SoundController.SeType.Decision);

                if (!IsContinue)
                {
                    GameParams.SetNewGame();
                }
                else
                {
                    GameParams.SetContinue();
                }
                SceneChanger.ChangeScene(SceneChanger.SceneType.StageSelect);
                return;
            }

            if (Input.GetButtonDown("Esc"))
            {
#if UNITY_EDITOR
                UnityEditor.EditorApplication.isPlaying = false;
#else
                Application.Quit();
#endif
                return;
            }

            // 動画再生チェック
            if ((Time.time - startTime) > movieInterval)
            {
                StartMovie();
                return;
            }

            // クリアステージがなければ変更なし
            if (GameParams.ClearedStageCount == 0)
            {
                return;
            }

            if (Input.GetAxisRaw("Horizontal") > 0)
            {
                SoundController.Play(SoundController.SeType.MoveCursor);
                IsContinue = true;
                startTime  = Time.time;
            }
            else if (Input.GetAxisRaw("Horizontal") < 0)
            {
                SoundController.Play(SoundController.SeType.MoveCursor);
                IsContinue = false;
                startTime  = Time.time;
            }
        }
예제 #3
0
        private void Update()
        {
            if (Fade.IsFading ||
                SceneChanger.NextScene != SceneChanger.SceneType.None ||
                SceneChanger.NowScene != SceneChanger.SceneType.Title)
            {
                return;
            }

            if (GameParams.IsActionAndWaterButtonDown)
            {
                SoundController.Play(SoundController.SeType.Decision);

                if (!IsContinue)
                {
                    GameParams.SetNewGame();
                }
                else
                {
                    GameParams.SetContinue();
                }
                SceneChanger.ChangeScene(SceneChanger.SceneType.StageSelect);
                return;
            }

            if (Input.GetButtonDown("Esc"))
            {
#if UNITY_EDITOR
                UnityEditor.EditorApplication.isPlaying = false;
#else
                Application.Quit();
#endif
                return;
            }

            // クリアステージがなければ変更なし
            if (GameParams.ClearedStageCount == 0)
            {
                return;
            }

            if (Input.GetAxisRaw("Horizontal") > 0)
            {
                SoundController.Play(SoundController.SeType.MoveCursor);
                IsContinue = true;
            }
            else if (Input.GetAxisRaw("Horizontal") < 0)
            {
                SoundController.Play(SoundController.SeType.MoveCursor);
                IsContinue = false;
            }
        }
예제 #4
0
        private void Update()
        {
            if (Fade.IsFading)
            {
                return;
            }

            if (GameParams.IsActionAndWaterButtonDown)
            {
                SoundController.Play(SoundController.SeType.Click);
                SceneChanger.ChangeScene(SceneChanger.SceneType.StageSelect);
            }
        }
예제 #5
0
        IEnumerator StoryMovie(VideoType vtype)
        {
            yield return(AnimProc(CanvasAnimStateType.FadeOut));

            videoPlayer.enabled = true;
            videoPlayer.clip    = videoClips[(int)vtype];
            videoPlayer.Play();
            movieImage.enabled = true;

            // 動画開始を待つ
            while (videoPlayer.time <= 0.0001f)
            {
                yield return(null);
            }

            // フェードイン
            yield return(AnimProc(CanvasAnimStateType.FadeIn));

            // 動画終了を待つ
            while (videoPlayer.isPlaying)
            {
                yield return(null);
            }

            // 最終ステージならクレジットロールへ
            if (GameParams.NowClearStage == GameParams.StageMax - 1)
            {
                yield return(CreditRoll());

                SceneChanger.ChangeScene(SceneChanger.SceneType.Title);
                yield break;
            }

            // ビデオプレイヤーをフェードアウトさせる
            float fadeTime = 0;
            Color col      = movieImage.color;

            while (fadeTime < videoFadeSeconds)
            {
                fadeTime += Time.deltaTime;
                float alpha = (1f - fadeTime / videoFadeSeconds);
                col.a            = alpha;
                movieImage.color = col;
                yield return(null);
            }

            movieImage.enabled = false;
            SelectNextStage();
            nextState = StateType.PlayerControl;
        }
예제 #6
0
        private void Update()
        {
#if DEBUG
            if (Input.GetKeyDown(KeyCode.S))
            {
                // エンディングへ
                SceneChanger.ChangeScene(SceneChanger.SceneType.StageSelect);
            }
            else if (Input.GetKeyDown(KeyCode.E))
            {
                // エンディングへ
                SceneChanger.ChangeScene(SceneChanger.SceneType.Ending);
            }
#endif
        }
예제 #7
0
        private void Update()
        {
            if (Input.GetButtonDown("Esc"))
            {
                // ステージ選択へ
                GameParams.Instance.toStageSelect = StageSelectManager.ToStageSelectType.Back;
                SceneChanger.ChangeScene(SceneChanger.SceneType.StageSelect);
            }
#if USE_DEBUG_CLEARKEY
            if (Input.GetKey(KeyCode.C) && Input.GetKey(KeyCode.L))
            {
                StartClear();
            }
#endif
        }
        void UpdatePlayerControl()
        {
            float cursor = Input.GetAxisRaw("Horizontal") + Input.GetAxisRaw("Vertical");

            if ((cursor < -0.5f) && (lastCursor > -0.5f))
            {
                GameParams.PrevSelectStage();
            }
            else if ((cursor > 0.5f) && (lastCursor < 0.5f))
            {
                GameParams.NextSelectStage();
            }
            lastCursor = cursor;

            if (GameParams.IsActionAndWaterButtonDown)
            {
                SceneChanger.ChangeScene(SceneChanger.SceneType.Game);
            }
        }
예제 #9
0
        IEnumerator storyMovie()
        {
            // 動画開始を待つ
            while (videoPlayer.time <= 0.0001f)
            {
                yield return(null);
            }

            movieFadeImage.enabled = false;

            // 動画終了を待つ
            while (videoPlayer.isPlaying)
            {
                yield return(null);
            }

            // クレジット再生
            if (nextState == StateType.CreditRoll)
            {
                yield return(CreditRoll());

                SceneChanger.ChangeScene(SceneChanger.SceneType.Title);
                yield break;
            }

            // ビデオプレイヤーをフェードアウトさせる
            float fadeTime = 0;
            Color col      = movieImage.color;

            while (fadeTime < videoFadeSeconds)
            {
                fadeTime += Time.deltaTime;
                float alpha = (1f - fadeTime / videoFadeSeconds);
                col.a            = alpha;
                movieImage.color = col;
                yield return(null);
            }

            movieImage.enabled = false;
            SoundController.PlayBGM(SoundController.BgmType.StageSelect);
            state = nextState;
        }
 /// <summary>
 /// Awakeを継承する際は、最後にbase.Awake()を呼び出すこと。
 /// </summary>
 public void Awake()
 {
     SceneChanger.AwakeDone(this);
 }
예제 #11
0
        IEnumerator StoryCutin(VideoType type)
        {
            // 画像表示
            audioSource.clip = SoundController.Instance.seList[(int)SoundController.SeType.NarrationStage5 + (int)type];

            yield return(AnimProc(CanvasAnimStateType.FadeOut));

            yield return(new WaitForSeconds(NarrationBeforeMarginSeconds));

            audioSource.Play();

            // ナレーションの終了、あるいは、操作待ち
            while (audioSource.isPlaying && !GameParams.IsActionAndWaterButtonDown)
            {
                yield return(null);
            }
            audioSource.Stop();

            // 終了待ち
            float startTime = Time.time;

            while (((Time.time - startTime) < NarrationAfterMarginSeconds) && !GameParams.IsActionAndWaterButton)
            {
                yield return(null);
            }

            // Stage5なら、フェードアウトしてすぐにプレイヤー操作へ
            if (type == VideoType.Stage5)
            {
                yield return(AnimProc(CanvasAnimStateType.FadeIn));

                waitMovieFade.sprite = null;
                SelectNextStage();
                nextState = StateType.PlayerControl;
                yield break;
            }

            // エンディングムービー
            videoPlayer.enabled = true;
            videoPlayer.clip    = videoClips[(int)type];
            videoPlayer.Play();
            movieImage.enabled = true;

            // 動画開始を待つ
            while (videoPlayer.time <= 0.0001f)
            {
                yield return(null);
            }

            // フェードイン
            yield return(AnimProc(CanvasAnimStateType.FadeIn));

            waitMovieFade.sprite = null;

            // 動画終了を待つ
            while (videoPlayer.isPlaying)
            {
                yield return(null);
            }

            // クレジットロールへ
            yield return(CreditRoll());

            SceneChanger.ChangeScene(SceneChanger.SceneType.Title);
        }
예제 #12
0
 /// <summary>
 /// クリア処理をして、ステージ選択シーンへ移行します。
 /// 飛び立つアニメから、完了時に呼び出します。
 /// </summary>
 public void ClearAndStageSelect()
 {
     GameParams.StageClear();
     SceneChanger.ChangeScene(SceneChanger.SceneType.StageSelect);
 }
예제 #13
0
 void Restart()
 {
     SceneChanger.ChangeScene(SceneChanger.SceneType.Game);
 }
 private void OnDestroy()
 {
     SceneChanger.SetSubCamera();
 }