コガネブログさんの「【Unity 入門】全方位シューティングを作る」というサイトのチュートリアルをやってみるシリーズの12回目です。前回はBGMと効果音の実装を行いました。
Unity全方位2Dシューティングチュートリアル11回目。BGMと効果音
今回はプレイヤー死んだらがゲームオーバーとなるよう実装していきます。ほんとは本家ブログのほうでは経験値ゲージとHPゲージの実装があるのですが、シューティングゲームに経験値とHPはいらねえよということで今回は省略します。
18.ゲームオーバーの実装
ここでやること
- hierarkhyのcreate→UI→Textでテキストを作成
- テキストの表示位置を画面中央になるよう調整
- GameControllerScriptを作成/li>
- つくったスクリプトをCanvasにアタッチ
- GameControllerScriptの「GameOverText」にTextをアタッチ
テキストをつくって表示させよう
まずはhierarkhyのcreate→UI→Textを選択して作成します。名前は適当に「GameOver」とでもしておきます。Textオブジェクトを作成するとCanvasとEventSystemというものが作成されます。別に気にしなくてよいのですがEventSystemを間違って消さないようにしましょう。
テキスト表示位置の調整
はっきり言って表示位置なんか好み次第なので解説するまでもないのですが、とりあえず画像だけのせときます。中央に配置してます。
GameControllerScriptを作成しよう
箇条書きにかいたことをどんどんやっていきます。わかりにくいのはスクリプトの部分なのでGameControllerScriptのコードをみていきましょう。本家ブログと手順こそちがいますがとりあえず動くコードです。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameControllerScript : MonoBehaviour {
public GameObject m_gameOverText; // ゲームオーバーのテキスト
void Update () {
//Playerオブジェクトを取得
var player = PlayerScript.m_instance;
// プレイヤーが非表示ならゲームオーバーと表示する
m_gameOverText.SetActive( !player.gameObject.activeSelf );
}
}
アタッチしていこう
GameControllerScriptをCanvasにアタッチ。→Canvas内のGameControllerScriptコンポーネントにTextをアタッチしていきます。難しく聞こえるかもしれませんがただマウスを動かすだけです。
ここまでの状態
Playerが死んだらGameOverが表示されます。
とりあえずこれでゲームっぽくなりました。あとはレベルとかパワーアップとかもあるのですがあまりシューティングとは関係ない部分になってきたので省略してこれで一旦ゲームは完成としました。
全方位シューティングゲーム作りを終えて得た学び
はっきりいって得た学びはないです。Unityの操作にちょっと慣れたくらいで、自分にはプログラムを作る才能はないんだなということがわかりました。でもそんなことを思ってもしょうがないので、まあまたなにか作ってみたくなったら・・・というか東方みたいなのが作りたいのでまた何か機会があればつくってみようかと思います。クソみたいなしめくくりになってしまいましたが、まあなにかあればまた。

コメント