【Unity2D 入門】横スクロールアクションゲームを作ってみたい -ゲームオーバーシーンの作成

raharu(仮名)(プログラマー)
これがダイバージェンス1%の先の世界か。。。

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

なので今回は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します。

retry.cs

1
2
3
4
5
6
7
8
9
using UnityEngine;
using System.Collections;

public class retry : MonoBehaviour {

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

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

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

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

hpbar.cs

1
2
3
4
5
6
7
8
9
10
11
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秒間無敵状態になる処理を作りたいと思います。