Unity全方位2Dシューティングチュートリアル12回目。ゲームオーバー

コガネブログさんの「【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オブジェクトを作成するとCanvasEventSystemというものが作成されます。別に気にしなくてよいのですがEventSystemを間違って消さないようにしましょう。

テキスト表示位置の調整

はっきり言って表示位置なんか好み次第なので解説するまでもないのですが、とりあえず画像だけのせときます。中央に配置してます。
screenshot 20181211 1928

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をアタッチしていきます。難しく聞こえるかもしれませんがただマウスを動かすだけです。
screenshot 20181211 1943

ここまでの状態

Playerが死んだらGameOverが表示されます。
screenshot-20181211-1948

とりあえずこれでゲームっぽくなりました。あとはレベルとかパワーアップとかもあるのですがあまりシューティングとは関係ない部分になってきたので省略してこれで一旦ゲームは完成としました。

全方位シューティングゲーム作りを終えて得た学び

はっきりいって得た学びはないです。Unityの操作にちょっと慣れたくらいで、自分にはプログラムを作る才能はないんだなということがわかりました。でもそんなことを思ってもしょうがないので、まあまたなにか作ってみたくなったら・・・というか東方みたいなのが作りたいのでまた何か機会があればつくってみようかと思います。クソみたいなしめくくりになってしまいましたが、まあなにかあればまた。


Warning: Undefined array key "thumbnail_url" in /home/users/1/boy.jp-rolpop/web/skc/wp-content/themes/godios/inc/schema-org.php on line 49

Warning: Undefined array key "thumbnail_url" in /home/users/1/boy.jp-rolpop/web/skc/wp-content/themes/godios/inc/schema-org.php on line 78