Unityで簡単なシューティングゲームを作る[9]
Step9:リトライボタンの設定
ゲームオーバーしたけどもう一度遊びたい…と言う人もいるだろう。そこでゲームに再チャレンジすることができるよう、リトライボタンをつけておこう。
※このサイトのチュートリアルはとりあえず自力でゲームを作ってみることを目的としているため、プログラム言語に関する解説部分はかなり大雑把で意訳気味です。プログラム言語(C#)について正しく、詳しく学びたい方は、入門書やUnityの解説サイトなどをご参考にしていただけたらと思います。また、このサイトはコピープロテクトをかけているため、画面上からスクリプトのコピペができません。「スクリプトはこちら」というリンクからテキストファイルを表示して使ってください。面倒くさくてすみません。
仕様を考える
リトライボタンの仕様を考える。表示するのはゲームオーバー時。なのでStep8で作成したゲームオーバーのパネル(GOPanel)の中に配置する。機能としては、ボタンクリックで最初のシーンに戻るというものにする。
リトライボタンを作成する
まずステージにリトライボタンのオブジェクトを作成する。ヒエラルキーリストの「+」をクリックし「UL」から「Button」を作成。名前を「Retry」とする。
作成したらドラッグ&ドロップで「GOPanel」内に格納する。「Retry」を選択し、インスペクタを以下のように設定する。ゲームビューに切り替えバランスを見ながら設定するとよい。(色やサイズはお好みでOK。)
Anchor Presets:center middle(中央)
Position(位置)X:0,Y:-50,Z:0
Color(ボタンの色):黄
次にヒエラルキーリストの「Retry」の下層にある「Text」を選択しボタンのテキストを以下のように設定する。(色やサイズはお好みでOK。)
Text(表示する文字):RETRY
Font Style:Bold
Font Size(文字の大きさ)16
Color(文字の色):こげ茶
ボタンのスクリプトを作成する
ボタンができたらボタンに機能を付与するスクリプトを作成する。シーンビューに戻し、「Assets」メニューから「Create」を選択し「 C#』を作成。名前を「Retrybutton」とする。
ファイルをダブルクリックして開き、以下のスクリプトを記述する。スクリプトはこちらから。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class Retrybutton: MonoBehaviour{ public void OnRetry(){ SceneManager.LoadScene("SampleScene"); } }
ユーザーインターフェイスのキットに加え、今回はシーンの切り替えを行うのでスクリーンマネジメントのキットも使うことを宣言する。
using UnityEngine.UI;
using UnityEngine.SceneManagement;
赤字の部分が作成したファイル名と一致していることを確認する。
public class Retrybutton : MonoBehaviour{
ボタンクリック時の処理を行うOnRetry関数を作成。SceneManager.LoadSceneで指定したシーンを読み込む。ここではヒエラルキーリストの一番上に記載されているシーン名を書く。デフォルトではSampleSceneとなっている。
public void OnRetry(){
SceneManager.LoadScene("SampleScene");
}
スクリプトをアタッチする
スクリプトが書けたら保存し、ヒエラルキーリストの「Retry」にスクリプト「Retrybutton」をドラッグ&ドロップしてアタッチする。
関連づけを行う
Retryのインスペクタを確認すると「Retrybutton」が表示されている。その上にある「Onclick」の欄を見ると何もない状態なので「+」をクリックする。すると「RuntimeOnly:No Function」、その下に「None(ojcect)」というボックスが現れる。
この「None(ojcect)」の部分に、ヒエラルキーリストの「Retry」をドラッグ&ドロップ、すると「RuntimeOnly」から「Retrybutton」が選べるようになるのでそれを選択しその中の「OnRetry」を選択する。
動作確認をする
ゲームビューに切り替え動作確認を行う。ゲームオーバー時にリトライボタンが表示され、ボタンクリックで再び新しくゲープをプレイすることができる。
ここまででゲームとしての機能は完成。次回からは背景をスクリールしたり、BGMを設定したり、
爆破エフェクトを設定したりして、ゲームをかっこよく見せるための仕上げをしていく。
★チュートリアル一覧
2020.6.3投稿