どうも、チャーさんです。
この記事では、Unityでゲームオーバー画面の
作り方を説明します。
この記事を読めば、あなたはゲームオーバー画面を作れて
さらにゲームオーバーの条件が満たされたら
ゲームオーバー画面に遷移するという機能を作れます。
ですが、読まないとやり方がわからず悩むでしょう。
なので、ゲームオーバー画面を作りたいならぜひ
今見てください。
またこのブログではUnityのゲーム開発に使える
ノウハウを記事にして書いてるので、ぜひブックマーク
お気に入りをしておいてください。
Unityでゲームオーバー機能を作る方法
動画verはこちら
ということで、早速本題です。
Unityでゲームオーバーの機能を作るには、
1、ゲームオーバーの画面を作る
2、スクリプトにゲームオーバーの画面に遷移する機能をかく
3、ゲームオーバー用のsceneをbuild settingで追加する。
4、プレイヤーオブジェクトとかにスクリプトを貼って試す。
大まかにはこの4つをやるだけでOKです。
ということで早速説明します。
目次
ゲームオーバーの画面を作る
ですが、まずゲームオーバー機能を作るには、
ゲーム画面シーン >>>>> ゲームオーバー画面シーンに遷移
という流れで実現させます。
なのでまずゲームオーバー画面を作りましょう。
といってもこちらは簡単でして、
まず新しいSceneを用意してください。
Assetsの中で右クリックしてCreate>Sceneを
押せばシーンは作れます。
次にそのシーンにGameOverとでも名前を
つけましょう。
それができたら今作ったsceneのアイコンを
ダブルクリックして、GameOverのシーンに移りましょう。
で、そこまできたら、今度は
Hierarchyの中で+ボタンをクリックして、
UI > Text をクリックしてください。
すると、Canvasと、Textというのが
親子関係で追加されます。
そのTextオブジェクトのインスペクターにある
TextというところにNew Textと書いてある入力欄が
あるので、好きなように書き換えましょう。
Game Overとかがベタです。
で、これが実際のゲームでは、ゲームオーバーの時に
表示される文字になります。
また今のままだと文字が小さいので、
font sizeというところの数字を14から増やして
文字を大きくしましょう。
さらに、
ParagraphのAlignmentというのがあるので
ここを真ん中、三本線になってるやつをクリックして
中央寄せしておきましょう。
これで一旦テキストはOKですが、
今のままだとゲーム画面で左のほうに表示されるので、
TextのインスペクターにあるRect Transform
というコンポーネントで、
PosX,PosY,PosZを全部0にしましょう。
するとゲーム画面のど真ん中に文字が
表示されるようになります。
ここまでできたらとりあえずゲームオーバー画面
は一旦完成です。
で、次に
スクリプトにゲームオーバーの画面に遷移する機能をかく
ですが、
Assets内で右クリックからスクリプトを
作成し、スクリプトの中には以下のような
記述を書きましょう。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class gameOver : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void OnCollisionEnter(Collision col){
SceneManager.LoadScene(“gameOver”);
}
}
ということでスクリプトの説明です。
まず注意点としては、スクリプト冒頭の
using UnityEngine.SceneManagement;
を忘れないようにしましょう。
ゲームオーバーの画面に遷移する際に
使うメソッドがあるのですがこれがないとエラーが
出ます。
で次に、
public void OnCollisionEnter(Collision col){
SceneManager.LoadScene(“gameOver”);
}
ですが、この{}の中の
SceneManager.LoadScene(“gameOver”);
というのがシーン遷移用の記述です。
上の記述では、このスクリプトを貼り付けた
オブジェクトが何かに衝突したらゲームオーバー画面に
遷移(飛ぶ)という記述になってます。
また文法的な説明としては、
SceneManager.LoadScene(“ここにシーン名をかく”);
です。
なので最初にゲームオーバー用のSceneを作った際に
つけた名前を上記の()の引数のところに書いてやると
あなたが用意したゲームオーバー用のシーンに飛びます。
またここがいわばゲームオーバーの画面に遷移する
条件に値するとこなので、慣れてきたら
HPが0になったらとか、いろいろ好きにやってみましょう。
で、ここまでできたら次は、
ゲームオーバー用のsceneをbuild settingで追加する。
ですが、この作業をしないとシーン遷移はできません。
ゲームオーバーのシーンに遷移するには
メニューのFile > Build Settingをクリックし、
Scenes In Buildというところに、
ゲームオーバー用のシーンを追加する必要があります。
(上記画像は追加済みのですが、最初は何もないはずです。)
ということで、Assets内のゲームオーバー用のシーンを
ドラッグ&ドロップして、
このScenes In Buildというところに持っていきましょう。
すると追加されます。
でそれをしたらbuild settingの画面を閉じましょう。
下にあるbuildボタンは押さなくても大丈夫です。
で次に
プレイヤーオブジェクトとかにスクリプトを貼って試す
ですが、
あとはゲーム用のシーンに戻り、2で用意したスクリプトを
プレイヤーオブジェクトに貼り付けてください。
またCollisionを使ってるので、Rigidbodyをプレイヤー
か衝突用オブジェクトにつけてゲームを実行し、
プレイヤーをオブジェクトに衝突させましょう。
その結果、ちゃんとゲームオーバー用に用意した
シーンに遷移すれば成功です。
どうですか、ちゃんと遷移しましたか?
まとめ
ということでUnityでゲームオーバーの機能を
作る方法ですが、
1、ゲームオーバーの画面を作る
2、スクリプトにゲームオーバーの画面に遷移する機能をかく
3、ゲームオーバー用のsceneをbuild settingで追加する。
4、プレイヤーオブジェクトとかにスクリプトを貼って試す。
をした後に、
プレイヤーとかに2のスクリプトを貼ればOKです。
そしたらゲームオーバーの条件を満たした時に、
ゲームオーバー画面に遷移するということが
できるので、ぜひやってみてください。
ということで読んでいただきありがとうございました。
それでは、チャーさん