こんにちは。【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の実装とアニメーション

コメント