この記事で最後になります!
最後は動画のようにゾンビに接触してしまった場合に画面にゲームオーバー画面が表示されるようにしていきます。
目次
ゲームオーバー画面
ゲームオーバー画面作り
ヒエラルキーの「+」マークから「空のオブジェクト」をクリックします。
そしてこのGameObjectの名前を「GameOver」にします。
ゲームオーバーの画面をこれから作っていきますが、それらの素材をここに入れることになりますね。
この「GameOver」は前回作った「Canvas」の中に入れてください。
次に再びヒエラルキーの「+」マークをクリックして、「UI」の中にある「画像」をクリックします。
するとヒエラルキーに「image」が生成されるのでそれを左クリック長押しで「GameOver」の中に入れます(画像1番目の赤丸)。
このimageはゲーム画面に四角形のUIを出してくれるので大きさを変えて画面全体をこの四角形で覆い尽くします(画像2番目の赤丸)。
そして右側の「image」から色を変更して黒にします(画像3番目の赤丸)。
次にヒエラルキーの「+」マークから前回使用したTextを追加し、「Game Over」の中に入れます(画像1番目の赤丸)。
そしてTextの大きさと位置を変更して画面の真ん中に表示させます(画像2番目の赤丸)。
右側の「テキスト」から文字を変更できるので「Game Over」に変更します(画像3番目の赤丸)。
そして右下にある「色」からテキストの色を赤に変更します(画像4番目の赤丸)。
そしてヒエラルキーの「GameOver」をクリックして(画像1番目の赤丸)、右側の「インスペクター」の下にあるチェックを外してゲームオーバー画面を非表示にします(画像2番目の赤丸)。
ここでゾンビのスクリプト「zombe」を開いて以下のコードをコピーして上書きしてください。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class zombe : MonoBehaviour
{
//アニメーション
Animator animator;
//プレイヤー
public GameObject Playe;
//スピード
public float Speed;
public float acceleration;
bool Stop = false;
//攻撃判定
private float attac;
//リスポーン
public int Position = 1;
public GameObject R1;
public GameObject R2;
public GameObject R3;
public GameObject R4;
public GameObject R5;
//スコア
public Score S_score;
public int A_score = 100;
bool score = false;
//ゲームオーバー
public GameObject gameover;
// Start is called before the first frame update
void Start()
{
animator = GetComponent<Animator>();
S_score = GameObject.Find("Text").GetComponent<Score>();
}
// Update is called once per frame
void Update()
{
Quaternion lookRotation = Quaternion.LookRotation(Playe.transform.position - transform.position, Vector3.up);
lookRotation.z = 0;
lookRotation.x = 0;
transform.rotation = Quaternion.Lerp(transform.rotation, lookRotation, 0.1f);
transform.position += transform.forward * Speed * Time.deltaTime;
if (Stop == true)
{
Speed = 0;
}
else
{
Speed = 3 + acceleration;
}
attac = Vector3.Distance(transform.position, Playe.transform.position);
if (attac < 5f)
{
animator.SetBool("Attac", true);
}
else
{
animator.SetBool("Attac", false);
}
}
void OnTriggerEnter(Collider col)
{
if (col.tag == "bullet")
{
animator.SetBool("FallingBack", true);
Stop = true;
Invoke("Run", 3f);
if (score == false)
{
S_score.AddScore(A_score);
score = true;
acceleration += 1;
}
}
}
void OnCollisionEnter(Collision col)
{
if (col.gameObject.tag == "Player")
{
gameover.SetActive(true);
Playe.SetActive(false);
}
}
void Run()
{
Position = Random.Range(1, 5);
animator.SetBool("FallingBack", false);
Stop = false;
score = false;
if (Position == 1)
{
transform.position = R1.transform.position;
}
if (Position == 2)
{
transform.position = R2.transform.position;
}
if (Position == 3)
{
transform.position = R3.transform.position;
}
if (Position == 4)
{
transform.position = R4.transform.position;
}
if (Position == 5)
{
transform.position = R5.transform.position;
}
}
}
そしてヒエラルキーにある「Zombie」をクリックして(画像1番目の赤丸)、「Zombe(スクリプト)」を確認します。
すると一番下に「Gameover」という項目が追加されているので非表示にしているヒエラルキーの「GameOver」を左クリック長押しでそこに読み込みます(画像2番目の赤丸)。
最後にヒエラルキーの「Player」をクリックし(画像1番目の赤丸)、右上あたりにあるタグを「Player」に変更します(画像2番目の赤丸)。
これで完成です。
ゲームを実行してゾンビに触れた時にゲームオーバー画面が表示されたらOKです。
これにてゲーム完成です!お疲れ様でした!
単純なゲームですが、アセットストアやアニメーション、プログラミングなど別のゲームを作る際に役立つことをなるべく入れているので新しくゲームを作る際に役立ってくれれば嬉しいです!
また、このゲームはゾンビの数を増やしたりマップのサイズを変えたり新しく壁を作るなりすることで難易度やゲーム性を自由に変えられるので自分の好きなように改造してみるのも楽しいかと思います!
最後まで読んでくださいありがとうございました!
前の記事
コメントを残す