Unity での一時停止メニューの作成

一時停止メニューの追加は、あらゆる Unity ゲームにとって重要であり、プレイヤーに一呼吸おいてオプションにアクセスする時間を提供します。このチュートリアルでは、コード例と説明を含めて、その作成方法を説明します。

1. 一時停止メニューをデザインする

  • ボタン (再開、オプション、終了) を含む希望のレイアウトをスケッチします。
  • 圧迫感を軽減するために、透明パネルの使用を検討してください。

2. キャンバスを作成する

  • [階層] パネルで右クリックし、["UI -> Canvas"] を選択します。
  • 適切な位置に配置するには、"Render Mode" を "Screen Space - Overlay" に設定します。

3. メニューパネルを構築する

  • キャンバスの下で右クリックし、"UI -> Panel" を選択します。
  • デザインに合わせてパネルのサイズを変更し、配置します。
  • 整理しやすくするために、名前を "PauseMenu" に変更します。

4. ボタンの追加

  • 「PauseMenu」パネル内で右クリックし、「PauseMenu」パネルを選択します。 "UI -> Button."
  • 必要なボタンごとに繰り返します (再開、オプション、終了)。
  • 適切な名前を付けます (例: "ResumeButton")。
  • テキスト、サイズ、位置をカスタマイズします。

5. ロジックのスクリプト作成

  • という名前の新しい C# スクリプトを作成します "PauseMenu.cs."
  • スクリプトを階層内の PauseMenu オブジェクトにアタッチします。

6. 一時停止機能

'PauseMenu.cs'

public class PauseMenu : MonoBehaviour
{
    public bool isPaused; // Flag to track pause state

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            // Toggle pause state on Escape key press
            isPaused = !isPaused;
            if (isPaused)
            {
                PauseGame();
            }
            else
            {
                ResumeGame();
            }
        }
    }

    void PauseGame()
    {
        // Set Time.timeScale to 0 to pause gameplay
        Time.timeScale = 0;
        // Make PauseMenu panel visible (activate its gameObject)
        PauseMenu.gameObject.SetActive(true);
    }

    void ResumeGame()
    {
        // Set Time.timeScale back to 1 to resume gameplay
        Time.timeScale = 1;
        // Hide PauseMenu panel (deactivate its gameObject)
        PauseMenu.gameObject.SetActive(false);
    }
}

7. ボタンのインタラクション

  • インスペクターウィンドウで、各ボタンを選択します。
  • "OnClick" の横にある「+」をクリックし、'PauseMenu' スクリプトをフィールドにドラッグします。
  • 適切な機能を選択します (たとえば、ResumeButton の場合は ResumeGame)。

8. 追加のタッチ

  • ボタンのスタイルをカスタマイズしたり、サウンド効果を追加したり、オプション メニューを実装したりできます。
  • シーン間での再利用を可能にするために、prefabs の使用を検討してください。

結論

このガイドが、Unity で動作する一時停止メニューを構築する上で有利なスタートを切ることができれば幸いです。さらに機能を追加し、特定のゲームのニーズに合わせて調整することで、このベースを拡張することを忘れないでください。