【やりたいこと】
アクションゲームのゲームオーバー処理で、画面全体を一定時間停止させた後、
後続の処理を再開させたい。(ここでは画面遷移)
【困っていること】
下記コードのように、Time.timeScale = 0.0f; で停止させた後、
コルーチン内でWait処理を実行させた後、
Time.timeScale = 1.0f; で画面更新を戻すロジックを作りましたが、
下記コメント記述のように、うまくいかず、
Time.timeScale = 1.0f; を付ける適切な場所がわかりません。
Time.timeScale = 1.0f; をつけた状態だと、画面が一時停止しなくなります。
ちなみに、コルーチンを使ったやり方については、いろいろと情報サイトを調べて試してみましたが、うまくいっていません。
どなたかご教示お願い致します。m(_ _)m
記載の不備等ありましたら、ご質問頂ければ、補足説明します。
【Unityのバージョン】
unity2017_1.0f3
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class GameManager : MonoBehaviour { // … 中略 … // ゲームオーバー処理 public void GameOver () { // … 中略 … Time.timeScale = 0.0f; StartCoroutine("PauseMinites", 2.0f); Invoke("GoBackStageSelect", 2.0f); // ↓ これを付けると、シーンが一時停止しなくなる。 // ↓ 削除すると、シーンが停止したままとなる。 Time.timeScale = 1.0f; } // ステージ選択シーンに戻る void GoBackStageSelect () { SceneManager.LoadScene ("StageSelectScene"); } // 一定時間停止処理 IEnumerator PauseMinites(float sec) { Debug.Log("PauseMinites呼び出し"); yield return new WaitForSeconds(sec); Debug.Log("Wait後、timeScaleを1に設定。"); Time.timeScale = 1.0f; } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/26 10:08