Unityで無限ランを作ろう!【part5.終了画面の作成編】

Unity

※Unity 2019.4.19f1 を使用して作成しています。

本記事は初心者向けにUnityでゲームを作ることができるようになることを目的として無限走のようなゲームを作成していきます。

下記のスコア表示編の続きになります。

 

本記事では、終了画面でのスコア表示ともう一度プレイするためのボタン「ReGame」を作成していきます。+αで簡単なスタート画面も作成します。

ざっくりと流れは

  1. スコア用を表示させるテキストを作成
  2. ReGameボタンなどのボタンを作成
  3. スコアを表示させるScriptを作成
  4. ボタン用のScritpを作成
  5. 各設定をして完了!!

たったこれだけです。作業は大体20分で完了します。※ScriptはコピペでOK!

 

スポンサーリンク

スコア用のテキストの作成

まずテキストを作成します。手順は前の記事と同じ手順で作成してください。

終了画面のテキスト

真ん中に大きくテキスト作成します。(Hierarchy内で右クリック→UI→Text)

画面の背景を一色にするためにはMain Camera の Clear Flags は 「Solid Color」 に設定します。

 

ReGameボタンなどのボタンを作成

次にもう一度プレイするボタンやスタート画面への遷移するためのボタンを作成します。

ボタンの作成

Hierarchy内のCnavasを右クリック→UI→Buttonでボタンを作成してください。とりあえず今の段階では作成するだけでOKです。

 

スコアを表示させるScriptを作成

プレイ中のシーン「InfiniteRun」のスコアを終了画面に引き継ぎ表示するためのScriptを作成していきます。作成したScriptは以下になります。名前は「EndShowScore 」としています。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class EndShowScore : MonoBehaviour
{
    public Text scoreEndScene;

    void Start()
    {
        if (ScoreManager.score_v2 % 1 == 0)
        {
            scoreEndScene.text = $"SCORE : { ScoreManager.score_v2.ToString()}.0 M";
        }
        else
        {
            scoreEndScene.text = $"SCORE : { ScoreManager.score_v2.ToString()} M";
        }
    }
}
き

基本的にやっていることはInfiniteRunシーンでやっていたことと同じです。受け取る値をScoreManagerクラスのscore_v2を指定します。

ほかのシーンでも使えるようにInfiniteRunシーンでは変数をpublic staticで宣言しています。

 

ボタン用のScriptを作成

次にボタンが押されたらもう一度ゲームができるようにInfiniteRunシーンへ戻る処理を実装します。作成したScriptは以下になります。名前は「EndSceneControl 」としています。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class EndSceneControl : MonoBehaviour
{
    public void ReGameButton()
    {
        SceneManager.LoadScene("InfiniteRun");
    }
}

前の記事で行ったシーン遷移と同じことを行います。違う点はボタンを押されたときに実行するためにReGameButtonメソッドを作成しています。このメソッドはUnity側で呼び出してあげます。

 

各設定をして完了

Scriptが完成したら空のゲームオブジェクトを作成し「GameManager」と名前を変更してScriptを2つ(EndShowScore 、EndSceneControl )をアタッチしてあげます。

Scriptのアタッチ

テキストのアタッチ

EndShowScoreのScoreEndScoreにテキストをアタッチしてあげいます。

 

ボタンのアクション設定

ボタンにシーン遷移するための処理を設定していきます。

OnClickの+ボタンをクリックします。

ボタンの設定

NoneにGameManagerをアタッチしてあげます。

ボタンの設定

No FunctionからEndSceneControlクラスのReGameButtonメソッドを選択します。

ボタンの設定

この設定でボタンが押されたときにメソッドが実行されるようになります。

 

以上で設定は完了です。

 

スタート画面も作成する

EndSceneシーンをCtrl + D でコピーして名前を「StartScene」に変更します。

基本的にはシーン遷移をそのまま使います。

スタート画面の作成

 

動かしてみる

実際に動かしてみるとこんな感じになります。

次は今回作成したゲームをWebで公開していきたいと思います。

 

参考書の紹介。価格はかなり高いですがこの1冊あればOKな充実した内容です!!

コメント

タイトルとURLをコピーしました