今回は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。
複数ステージがあり、行き先が複数の場合はこの方が良いかな。ステージ毎にシーンが分かれていればですが・・・。