こんにちは。【2Dシューティング】Unity公式チュートリアルをやってみるシリーズの8回目です。前回は自機の移動制限と修正を行いました。
【2Dシューティング】Unity公式チュートリアルをやってみる7回目。自機の移動制限
今回はゲームタイトルをつける作業をやっていきます。
ゲームタイトルをつけよう
ここでやること
- タイトルを作る
- タイトル用のスクリプトを作成
- PlayerScriptとEmitterScriptの修正
- 空のゲームオブジェクトManagerをつくってManagerScirptをアタッチ
タイトルを作ろう
公式チュートリアルがだるいことをさせようとしてくるので、普通にテキストで作りました。GUI Textを使おうとしたら表示されないので困った。
かわりにUI Textを表示させようとしたら、これも表示されないのでこれも困った。すぐ解決したが、Textが消える現象があるので参考まで↓
UnityでUI Textが消えてしまうときの解決策
タイトルなんか適当につくれやええんです。
タイトル用のスクリプトをつくろう
Xボタンを押したらPlayerが登場するようなスクリプトを書いていく。Playerオブジェクトは一旦消しておく
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ManagerScript : MonoBehaviour { public GameObject player;//PlayerPrefab private GameObject title; void Start () { //Titleゲームオブジェクトを検索し取得する title = GameObject.Find("Canvas"); } void Update () { //Xキーが押されたらtrue if(isPlaying() == false && Input.GetKeyDown(KeyCode.X)){ GameStart(); } } void GameStart(){ //ゲームスタート時にタイトルを非表示にしてプレイヤーを作成する title.SetActive(false); Instantiate(player, player.transform.position, player.transform.rotation); } public void GameOver(){ title.SetActive(true);//ゲームオーバー時Title表示 } public bool isPlaying(){ //ゲーム中かどうかはタイトルの表示/非表示で判断 return title.activeSelf == false; } }
Xキーが押されたらプレやイヤーが作成されゲームがはじまる。プレイヤーが死んだらtitleを表示するGameOver()メソッドも定義してある。
PlayerScriptとEmitterScriptで呼び出そう
PlayerScriptでしんだときGameOver()メソッドをよびださないといけない。
void OnTriggerEnter2D (Collider2D c){ // Managerコンポーネントをシーン内から探して取得し、GameOverメソッドを呼び出す FindObjectOfType<ManagerScript>().GameOver(); Destroy(c.gameObject);//弾の削除 spaceship.Explosion();//爆発する Destroy(gameObject);//プレイヤーの削除 }
EmitterScript(敵の軍隊を呼び出すスクリプト)はTitle表示中は待機させておく必要がある
//略 private ManagerScript manager; //略 IEnumerator Start(){ //Waveが存在しなければコルーチンを終了する if(waves.Length == 0) yield break; // Managerコンポーネントをシーン内から探して取得する manager = FindObjectOfType<ManagerScript>(); while(true){ // タイトル表示中は待機 while(manager.isPlaying() == false) { yield return new WaitForEndOfFrame (); } //略 } }
これらが終わったら空のゲームオブジェクトを作る。名前はManagerにする。ManagerScriptをアタッチしたら。PlayerPrefabをアタッチ。だるすぎる。以下が画像。
ここまでの状態
Xキーが押されるとゲームが始まり、死ぬとまたタイトルが表示される。
次の記事
次の記事はHPの実装とアニメーションです。アニメーションは手ごわかったです。
【2Dシューティング】Unity公式チュートリアル9回目。HPの実装とアニメーション
コメント