読者です 読者をやめる 読者になる 読者になる

とあるプログラマの備忘録

都内某所に住むプログラマが自分用に備忘録を残すという趣旨のブログです。はてなダイアリーから移動しました!

Unity2D入門 スクロールアクションゲームを作る ゲームオーバーシーンの作成

前回ゲームオーバーが無いとゲームじゃないじゃん。 とか言っておきながらダメージ処理だけの記事となってしまいました。

なので今回はHPが0になったらゲームオーバーさせます。

ゲームオーバーシーンの作成

File > New Sceneから新しいシーンを作成して名前をgameoverとでも名付けておきます。

そうすると2つシーンができてる筈です。 今まで弄ってたのがmainmapです

f:id:raharu0425:20140110192947p:plain

新しいシーンの方に移動します。

Hierarchy > Create > GUI TextでGAME OVERと画面に表示させて、 リトライボタンを作成し、 Hierarchy > Create > GUI Textureでオブジェクトを作成して これにこの画像を適応します。

f:id:raharu0425:20140110193230g:plain

位置は適当に良いところにおいてみてください。 こんなゲーム画面にしてみました。

f:id:raharu0425:20140110193407p:plain

さてようはこの画面とゲーム画面を行ったりきたりできれば良いのです。

シーンを変更するスクリプトを書く

retry.csとでも名付けて retryボタンにAdd Componentします。

using UnityEngine;
using System.Collections;

public class retry : MonoBehaviour {

    void OnMouseUpAsButton(){
        Application.LoadLevel("mainmap");
    }
}

さてエミュレートしてボタンを押したらゲーム画面にいきましたか?

HPが0になったらゲームオーバーシーンに移動させる

これも簡単ですね。 Application.LoadLevel("gameover"); をHP0になったらの条件式に追加します.

hpbar.cs

   void onDamage(int damage)
    {
        Rect hpRect = guiTexture.pixelInset;
        hpRect.width = (hpRect.width - 10);

        if(hpRect.width <= 0){
                        //追加
            Application.LoadLevel("gameover");
        }
        guiTexture.pixelInset = hpRect;
    }

これでHPが0になったらゲーム終了となりました! 次回はダメージを受けたら点滅して1秒間無敵状態になる処理を作りたい徒思います。

Unity関連記事

"Unity" - 記事一覧 - とあるプログラマの備忘録