短編RPG制作(Unity2D)【第23回】メニューの作成その3


メニューボタンの実装

メニュー画面の表示・非表示を切り替えるボタンを作ります。

ボタン作成

まずは、左下にボタンを表示させます。
メニュー画面は邪魔なので非表示にしておきます。

メニューボタンを設置

ボタンは最前面に表示したいので、新しいキャンバスを作ってレイヤー表示順を調整しました。

スクリプトの作成

表示切替機能を作ります。

using UnityEngine;

public class MenuButton : MonoBehaviour
{
    [SerializeField] private Canvas _canvas;
    private bool canvasEnable = false;

    public void OnClickMenuButton()
    {
        if (!canvasEnable)
        {
            _canvas.enabled = true;
            canvasEnable = true;
        }
        else
        {
            _canvas.enabled = false;
            canvasEnable = false;
        }
        
    }
}

Inspectorウィンドウでメニュー画面をセットして、ボタンを押すごとに切り替えられるようにしました。
bool型の変数を作って、それをもとに動作を分岐させていますが、もっといい方法があるかもしれません。あんまり調べずに書いたので。

ボタンにスクリプトを登録

第18回でContinueボタンを作ったのと同様の手順で、スクリプトを使えるようにします。
まず、メニューボタンにMenuButtonスクリプトをアタッチします。
次に、ButtonコンポーネントのOnclickプロパティの「+」をクリック。「None(Object)」の部分にメニューボタンオブジェクトをセットします。
クリックした際に起動する動作として、"MenuButton.OnClickMenuButton()"を選択しておきます。
これで、クリックするたびにメニュー画面の表示・非表示が切り替わるはずです。

テスト

ちゃんと機能が実装されたか、試してみます。
開始時はメニューを非表示にしておきたいので、Sceneウィンドウで非表示状態を維持しておきます。

ボタンクリック後
ボタンクリック2回目後

無事にメニュー画面表示ボタンを実装できました。

まとめ

単純な機能だったので、すんなり実装できました。ボタンの作成を第18回でやっていたのが大きかったですね。
次回は、アイテムドロップの設定とプレイヤーのインベントリ設定を行っていきます。

この記事が気に入ったらサポートをしてみませんか?