SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

速習 Unity 2Dゲーム開発

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

値が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を操作する方法を紹介しました。次回は音を鳴らす処理を実装していきます。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
速習 Unity 2Dゲーム開発連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8397 2015/02/17 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング