Star☆Unityメモ

Unityのちょっとしたことをメモって後で見返せれたらいいなサイト

コールチンでゲームステートを管理してみる

ステートを管理にコールチンが使えた

ミニゲームを作りたいと考えたときに、 Title→main→GameOver→Title みたいなステート遷移を行いたいときに意外とコールチンが使えた. この方法は下記のTanksの中でも利用されている(っと思う) unity3d.com

コード

void Start() {
    playerManger = playerManager.GetComponent<PlayerManager>();
    StartCoroutine("GameStateChange");
}


//Gameのマスター管理
IEnumerator GameStateChange() {
    yield return StartCoroutine(RoundStart());
    yield return StartCoroutine(RoundPlay());
    yield return StartCoroutine(RoundEnd());
    yield return StartCoroutine(GameStateChange());
}


IEnumerator RoundStart() {
    // テキストの変更
    playerManger.CreatePlayer();
    // 2秒後にStart
    yield return new WaitForSeconds(2.0f);
}


IEnumerator RoundPlay() {
    while (!OnPlayer()) {
        Debug.Log("プレイヤーが存在しています");
        yield return null;
    }
}


IEnumerator RoundEnd() {
        Debug.Log("ゲームオーバー時に行いたい処理、2病後にRoundStart開始");
    yield return new WaitForSeconds(2.0f);
}