マナビヤ

人生が豊かになるブログ

manabiya

HPが無くなったらゲームオーバーにする方法【知識ゼロから始めるUnity入門⑦】

f:id:fab5:20200115182807j:plain

  • HPが無くなったらゲームオーバーになる処理が知りたい。
  • ゲーム画面の切り替え方法を知りたい。

 

この記事はこんな方に向けて書いています。

こんにちは fab5 です♪

前回の記事ではゲーム画面にHPを表現する方法を説明しました。

前回の記事はこちら↓

manabiya.fab5.work

 

しかし、ここまでの処理ではHPのゲージが無くなっても延々とゲームは続いていきます。

そこで今回はゲージが全部無くなったらゲームオーバーの画面に切り替えるという処理を行っていこうと思います。

それでは早速いってみましょう!

 

 

HPが無くなったらゲームオーバーにする方法

HPが無くなったらゲームオーバーにする方法を考えていくのに、まずは流れから説明していきたいと思います。

この処理を行うには「ゲーム画面」「ゲームオーバー画面」の2つのシーンが必要になります。

そこで、最初に「ゲームオーバー画面」を作成して、次に前回までに作成している「ゲーム画面」からゲームオーバー画面へ切り替えるプログラムを追加していこうと思います。

 

  1. ゲームオーバー画面の作成
  2. シーンの切り替え処理

 

ゲームオーバー画面を作成する

それでは最初に、ゲームオーバー画面を作成する方法について説明していきます。

 

新しいシーンを追加する

新しいシーンを追加するには「File」→「NewScene」と進んでください。

 

f:id:fab5:20200130194928j:plain

 

すると、「UNTITLED」という新しいシーンが追加されるので「File」から「Save as …」と進んで名前を変更します。

 

f:id:fab5:20200130194940j:plain

 

新しいシーンの名前は「GameOver」にしました。

 

f:id:fab5:20200130195003j:plain

 

するとこのようにシーン名が「GameOver」に変わっていますね。

 

f:id:fab5:20200130195019j:plain

 

画面上に文字を表示する

新しいシーンには当然のように何も表示されていません。

ここに「GAME OVER」の文字を入れていきましょう。

「Create」→「UI」→「Text」と進んでTextオブジェクトを作成します。

 

f:id:fab5:20200130195032j:plain

 

すると、このようにヒエラルキー欄に「Text」オブジェクトが作成されました。

 

f:id:fab5:20200130195045j:plain

 

次に、画面に表示される文字を変更するためインスペクター欄のText(script)の下の枠内を「GAME OVER」に書き換えます。

すると、画面の表示も変わりました。

 

f:id:fab5:20200130195101j:plain

 

文字の色を変える方法

画面に「GAME OVER」を表示させることは出来ましたが、今のままではちょっと見えにくいですね。

そこで、これから文字の色を変更していきます。

  1. インスペクター欄を下にスクロールしていくと「color」という項目があるので、ここをクリックします。

 

f:id:fab5:20200130195114j:plain

 

すると、左側に「色の図」が現れるので好きな色の場所をクリックしてください。

今回は「白」の部分をクリックしました。

 

f:id:fab5:20200130195130j:plain

 

とりあえずこれでゲームオーバー画面が出来上がったので、これを保存しておきましょう。

 

f:id:fab5:20200130195143j:plain

 

ゲームシーンの切り替え処理

ここまでの所で、切り替え先のゲームシーンが作成出来たので、次は切り替え処理の説明をしていきます。

 

ゲームシーンの編集画面を切り替える

現在、PCの画面は「GameOver」の編集画面になっていると思いますが、ここからゲーム画面である「TestScene1」の編集画面に切り替えていきます。

「File」→「OpenScene」と進んでください。

 

f:id:fab5:20200130195204j:plain

 

するとこのような画面になるので、TestScene1を選んでください。

 

f:id:fab5:20200130195218j:plain

 

これで、ゲーム画面のTestScene1に切り替わりました。

 

f:id:fab5:20200130195234j:plain

 

監督スクリプトに切り替えプログラムを書き加える

ゲームシーンの編集画面に切り替わったので、監督スクリプトに切り替えプログラムを書き加えていきます。

まずは「GameDirector」スクリプトをクリックします。

 

f:id:fab5:20200130195250j:plain

 

「GameDirector」スクリプトでは下記の赤線の部分を書き加えました。

まず、一番上の赤線部分はゲームシーンを切り替える場合に必要なものなので、忘れないようにしてください。

 

f:id:fab5:20200130195307j:plain

 

int hpflag = 10 というのは、hpflagという変数に10を代入しますよという意味です。

これはHPが10ですよという宣言になりますね。

そしてpublic void DecreaseHp()というのは岩に当たった時に呼び出されるメソッドになるので、ここに hpflag -= 1を書き加える事で岩に当たったらHPが1減りますよという意味になります。

また、その下の

if(hpflag==0){}の部分は、もしHPが0になったら

SceneManager.LoadScene(”GameOver”)

”「GameOver」画面に切り替わりますよ”という意味です。

 

ビルドセッティングを行う

ここまで来たら手順は完了なのですが、シーンを追加すると、しなければいけないことがあります。

「File」→「Build setting」と進んでください。

すると、このような画面になります。

 

f:id:fab5:20200130195329j:plain

 

「Add Open Scene」をクリックすると「TestScene1」が上の枠に表示されますが、ここに「GameOver」も追加します。

プロジェクト欄の「GameOver」をドラッグして上の枠内にドロップしてください。

すると上の枠内に「GameOver」が追加されます。

 

f:id:fab5:20200130195347j:plain

 

実行する

以上で全ての手順が完了なので、「▶」を押して実行してみましょう。

このようにいつもの画面が現れます。

 

f:id:fab5:20200130195402p:plain

 

HPが残りわずかになったのであと1つ岩が当たればゲームオーバーです。

 

f:id:fab5:20200130195416p:plain

 

このように無事にゲームオーバー画面に切り替わりました。

 

f:id:fab5:20200130195431p:plain

 

まとめ

今回はHPが無くなった時にゲームオーバーになる方法を説明しました。

今回はわりとシンプルな処理になるので、そこまで難しくはなかったと思います。

次回は、ゲーム画面に制限時間を作る方法を説明していきます。

それでは最後までありがとうございました☺

 

完成するゲームはこちら

今回作っているゲームの完成品はこちらになります↓↓↓

オヤジGET!! | フリーゲーム投稿サイト unityroomunityroom.com

]

 

関連書籍

Unityの教科書 Unity2019完全対応版  2D&3Dスマートフォンゲーム入門講座 (Entertainment&IDEA)

Unityの教科書 Unity2019完全対応版 2D&3Dスマートフォンゲーム入門講座 (Entertainment&IDEA)

  • 作者:北村 愛実
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2019/06/28
  • メディア: 単行本