CodeZine(コードジン)

特集ページ一覧

速習 Unity 2Dゲーム開発
~第11回 タイマー処理

速習 Unity 2Dゲーム開発 第11回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2015/02/17 14:00
目次

値が0になったらゲームオーバーを表示する

画像の追加

 カウントダウンが終了したらゲームオーバーを画像を表示します。

 本記事からダウンロードできるサンプルファイル(アセット)のtime_out.pngを、ProjectウィンドウのImagesフォルダーにドロップします。

Imagesにtime_out.pngをドロップ
Imagesにtime_out.pngをドロップ

 Hierarchyウィンドウに先ほどImagesフォルダにドロップしたtime_outをドロップします。

Hierarchyウィンドウに追加
Hierarchyウィンドウに追加

プログラムから画像を非表示に

 time_outはゲーム開始時は表示されないようにしたいので、プログラムで非表示に変更します。GameManager.csのStartメソッドの終わりに以下の行を追加します。

time_outを非表示に
// タイムアウトは非表示に
GameObject.Find("time_out").renderer.enabled = false;

 GameObjectの非表示は、renderer.enabledプロパティをfalseに指定することで実現します。

タイムアウト時に画像を表示する

 続いてゲームオーバー時にtime_outを表示するようにプログラムを修正します。GameManager.csのUpdateメソッドを以下のように修正します。

Updateメソッドを修正
void Update () {

    // 左右のキーで左右に移動
    float horizontal = Input.GetAxis("Horizontal");

    // キー入力がありジャンプ中でない場合は左右に移動
    if (horizontal != 0.0f && this._charactorScript.isJumping == false)
    {
        this._moveCharactor(Vector2.right * _horizontalForce * horizontal);
    }
    // スペースキーでジャンプ
    // ジャンプ中はスペースキーが押されてもさらに上昇しない
    if (Input.GetKeyDown("space") && this._charactorScript.isJumping == false)
    {
        this._moveCharactor(Vector2.up * _upForce);
    }

    // 経過時間を取得
    TimeSpan pastTime = DateTime.Now - this._startTime;

    // カウントダウンを開始
    var countDown = this._limitTIme - pastTime.Seconds;

    if (countDown >= 0)
    {
        // 文字を変更
        Text countDownText = GameObject.Find("countDownText").GetComponent<Text>();
        countDownText.text = countDown.ToString();
    }
    else
    {
        GameObject.Find("time_out").renderer.enabled = true;
        GameObject.Find("countDownText").GetComponent<Text>().text = "";
    }
}

 countDownの値が0以上ならカウントダウンの数字を表示し、0より小さくなった場合にtime_outを表示します。

 ハムスターや操作キャラクターを動かすことができるなど、ゲームオーバー処理としてはおかしな点は残っていますが、この辺は後で調整していきます。

まとめ

 今回はタイマー処理と、プログラムからGameObjectを操作する方法を紹介しました。次回は音を鳴らす処理を実装していきます。



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:速習 Unity 2Dゲーム開発

もっと読む

著者プロフィール

  • 西村 誠(ニシムラ マコト)

     Microsoft MVP Windows Platform Development。  Flash、PHPの開発経験もあり国産ECサイト構築フレームワーク「EC-CUBE」の公式エバンジェリストでもある。  ブログ:眠るシーラカンスと水底のプログラマー  著書:基礎から学ぶ Windows...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5