UnityUnityメモ

Unity初心者向け|簡単にゲーム終了ボタンを作成する方法

Unity

はじめに

Unityでゲームを開発していると、「ゲームを終了するボタンが欲しい」と感じる場面がありますよね。特にPCゲームやアプリケーションでは、ゲームを終了する明確な方法を用意することが、ユーザー体験の向上につながります。

この記事では、Unity初心者の方でも簡単にできるExitボタンの作り方を、具体的な手順とサンプルコードを交えて解説します。これを読めば、ゲームに終了ボタンを追加する方法がすぐにわかります!

ぜひ最後まで読んで、あなたのゲーム開発に役立ててください。

Unityを触ったことがないという方はコチラの記事から見てみてください!

1. Exitボタンの基本的な作成手順

ゲームにExitボタンを追加するのはとても簡単です!以下の手順に従えば、すぐに実装できます。

1. UnityでExitボタンを作るための準備

  1. ボタンを作成する
    Unityエディターで以下の手順を実行します:
    • メニューバーから「GameObject > UI > Button」を選択してボタンを作成します。
    • 作成したボタンに「Exit」や「終了」といったラベルを付けて、プレイヤーにわかりやすくします。
  2. ボタンのデザインを調整する(任意)
    • Inspectorでボタンの色、フォント、サイズを調整して見た目を整えましょう。



2.スクリプトを作成する

Exitボタンを機能させるには、簡単なC#スクリプトを作成して機能を紐付ける必要があります。

  1. スクリプトを作成する
    プロジェクトビューで以下の手順を実行します:
    • 「Assets」フォルダー内で右クリックし、「Create > C# Script」を選択します。
    • スクリプトの名前を「ExitGame」に変更します。
  2. スクリプトにコードを記述する
    作成したスクリプトをダブルクリックして開き、以下のコードを記述します。
using UnityEngine;

public class ExitGame : MonoBehaviour
{
    public void QuitGame()
    {
        #if UNITY_EDITOR
        // Unityエディターでの動作
        UnityEditor.EditorApplication.isPlaying = false;
        #else
        // 実際のゲーム終了処理
        Application.Quit();
        #endif
    }
}

  • コードの説明:
    • #if UNITY_EDITOR はUnityエディター上で実行時に動作を止めるためのコードです。
    • Application.Quit() はビルド後のゲームで実際にアプリケーションを終了します。

3.ボタンとスクリプトを紐付ける

  1. 作成したボタンを選択します。
  2. Inspectorで「Button (Script)」セクションの「OnClick()」イベントを見つけます。
  3. 紐付け手順:
    • 「+」ボタンをクリックして新しいイベントを追加します。
    • 「Runtime Only」にスクリプトをアタッチしているオブジェクトをドラッグします。
    • ドロップダウンメニューで「ExitGame > QuitGame()」を選択します。

4.実行して確認する

ビルド後の確認:
ゲームをビルドして実行し、Exitボタンが正常に動作することを確認します。

Unityエディターで確認:
再生ボタンを押してゲームを開始し、作成したExitボタンをクリックします。エディター上ではゲームプレイが終了します。



5. 応用テクニック

Exitボタンの基本的な実装ができたら、次は少し応用した使い方を試してみましょう。デザインや機能をカスタマイズすることで、ゲームの完成度をさらに高めることができます。

1. ボタンデザインの変更

Exitボタンの見た目を変えるだけで、ユーザー体験が向上します。以下の変更を行ってみましょう:

  • 色の変更:
    ボタンの背景色を変更して、他のボタンと区別する。
    • 「Inspector > Button > Colors」で変更可能です。
  • フォントやサイズの調整:
    テキストのフォントやサイズを変更して見やすくする。
    • 「Text (Script)」の設定から調整します。
  • アイコンの追加:
    ボタンに「×」や「終了」のアイコンを追加して直感的に。
    • Imageコンポーネントを使用してアイコンを設定します。

カスタマイズ例

Unityの標準UIを使用してボタンを作成するのも良いですが、より洗練されたデザインを短時間で実現したい場合は、有料アセットを利用する方法もあります。

  • UI Kit Pro – Casual Glossy
    このアセットは、ポップで魅力的なボタンデザインやアイコンが豊富に含まれており、ゲームのUIを大幅にアップグレードできます。特にカジュアルゲームや初心者向けのゲームにはぴったりです。
  • 特徴
    • ボタンやUI要素の多彩なプリセット
    • 視認性が高く、直感的なデザイン
    • アセットを導入するだけで、プロフェッショナルな見た目を簡単に実現可能

「Exitボタンを目立たせたい」「カジュアルで親しみやすいUIを作りたい」と考えている方にはぜひおすすめです。


2. 警告メッセージの表示

プレイヤーが誤ってゲームを終了しないよう、確認ダイアログを表示することもできます。以下のコードを追加して、警告メッセージを実装しましょう。

1. 確認用のUIを作成する

  1. Canvasの追加: Unityのヒエラルキーで「GameObject > UI > Canvas」を作成します。
  2. ダイアログの作成: Canvas内に「Panel」オブジェクトを追加して、確認用のダイアログをデザインします。
    • Panel内に「Text」と「Button」を配置します(例: 「本当に終了しますか?」と「はい」「いいえ」のボタン)。
  3. 非表示に設定: 初期状態でダイアログを非表示にしておきます(SetActive(false))。

2. 修正版スクリプト

次に、確認ダイアログを表示するコードを作成します。

using UnityEngine;

public class ExitGameWithDialog : MonoBehaviour
{
    // ダイアログのPanelをアタッチ
    public GameObject confirmDialog;

    // ゲーム終了のリクエスト
    public void RequestQuit()
    {
        // 確認ダイアログを表示
        confirmDialog.SetActive(true);
    }

    // ゲームを終了する処理
    public void QuitGame()
    {
        #if UNITY_EDITOR
        UnityEditor.EditorApplication.isPlaying = false;
        #else
        Application.Quit();
        #endif
    }

    // キャンセル処理
    public void CancelQuit()
    {
        // 確認ダイアログを非表示
        confirmDialog.SetActive(false);
    }
}

3. ボタンの設定

作成したUIにスクリプトを設定し、ボタンのイベントを紐付けます。

  • 「終了」ボタン: RequestQuit() を呼び出してダイアログを表示します。
  • ダイアログ内の「はい」ボタン: QuitGame() を呼び出してゲームを終了します。
  • ダイアログ内の「いいえ」ボタン: CancelQuit() を呼び出してダイアログを非表示にします。

この応用テクニックを使えば、Exitボタンをただの終了機能から、プレイヤーにメッセージ表示してから終了させるように進化させられます。ぜひ試してみてください!



まとめ

この記事では、UnityでExitボタンを作成する方法を初心者向けに解説しました。Exitボタンは、特にPCゲームで重要な要素の1つです。サンプルコードや実装手順を活用することで、短時間で簡単に実装できることがお分かりいただけたと思います。

基本的なコードをそのまま使用するだけでなく、ボタンのデザインや動作をカスタマイズすることで、ゲーム全体の完成度をさらに高めることができます。また、実装の際には、プラットフォームごとの挙動やユーザー体験を考慮することも忘れないでください。

Exitボタンの実装を通して、UnityでのUI操作やスクリプトの連携に慣れるきっかけとなれば幸いです。これからもぜひ新しい機能やデザインに挑戦して、オリジナルのゲーム制作を楽しんでください!



よくある質問

Q
マルチプラットフォームで動作する終了ボタンを作りたい
A

プラットフォームごとに挙動が異なる場合がありますが、基本的にはApplication.Quit()で対応可能です。特定のプラットフォームに応じたカスタマイズが必要な場合は、Application.platformを使って条件分岐を設定します。

Q
クリック時のエフェクトを追加したい
A

ボタンを押したときにエフェクトや音を追加するには、ボタンの「OnClick()」イベントにエフェクトを発生させるメソッドを追加してください。

Q
ボタンのデザインを変更したい
A

ボタンのデザインは、ボタンオブジェクトの「Inspector」からカスタマイズできます。色やフォントサイズ、背景画像を変更することで見た目を調整可能です。