簡単なメニュー画面とシーンの移動を実装【Unityゲーム制作】

今回はUnityの2Dゲームで簡単な「メニュー画面」と「シーンの移動」をシンプルな仕組みで実装していきます。

はじめに

「Unity 2020.3.21f1」ヴァージョンで作成しています。

下記記事で、シーン移動の超基本を書いてますが、追加みたいな感じです。

今回やる事

「シンプルなメニュー画面の作成」と「シーンの移動」を実装していきます。

実装開始

では、実際に作成していきます。

メニュー画面の作成

新規でシーンを作成。名前は「StartScene」としておきます。「menu」でも何でもOK。

ヒエラルキーメニューで、UIから「Button-TextMeshPro」を追加。

TextMeshProはテキストを拡張した感じのものですね。

追加されたらCanvasのレンダーモードを変更してカメラに合わせます。

次にボタンテキストの中身を変更、サイズやグラデーションを変更します。

カラーグラデーションの作成

カラーグラデーションはベースを作成しておくと、使いまわしが出来るので便利です。

プロジェクトで右クリック「作成」→「TextMeshPro」→「カラーグラデーション」を選択。

各色をセットしたら、「Color Preset」にセットします。

ボタンの名称を変更して、サイズや色を適当に変更しておきます。

スタートボタンをコピーして「終了ボタン」も作成。位置をずらしておきます。

Canvas内に空のオブジェクトを作成して、名前をMenuに変更、配下にボタンを移動します。

これで超簡単なメニューが完成。実際は設定ボタンとかも必要なのであくまでも最低限ですね。

画面遷移スクリプトを作成

「ゲーム画面へ遷移」、「ゲームを終了」するスクリプトを作成します。

新規スクリプトで「Menuselect」と言う名前で作成。中身は下記に変更。指定したシーンを呼び出しているだけですね。

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

public class Menuselect : MonoBehaviour
{

    public void StartGame()
    {
        SceneManager.LoadScene("GameScene");
    }
    public void EndGame()
    {
        Application.Quit();
    }
}

メニューオブジェクトにスクリプトを付けます。

後は、ボタンクリック時の動作にそれぞれのメソッド(関数)を呼ぶように追加すればOK。

これで実行して、ゲーム画面に移動すればOK。

別の方法

メニューから「ゲームスタート」を選ぶ場合は良いですが、メニューからの行き先が複数ある場合、下記の様にパラメータでセットする方法も。

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

public class Menuselect : MonoBehaviour
{

    public void StartGame(int Sceneindex)
    {
        SceneManager.LoadScene(Sceneindex);
    }
    public void EndGame()
    {
        Application.Quit();
    }
}

パラメータの数字はビルド設定の数字を渡せばOK。

パラメータを文字列(string)にして、シーン名称を渡してもOK。

複数ステージがあり、行き先が複数の場合はこの方が良いかな。ステージ毎にシーンが分かれていればですが・・・。

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