【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

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秒間無敵状態になる処理を作りたいと思います。