【Unity6】ボタンを押されたときの処理の追加

この記事は約3分で読めます。
スポンサーリンク

やりたいこと

Unityでボタンを押されたときに指定の処理を行うようにします。

検索すると日本語の記事も結構出てくる(おそらくUnity20XX)のですが、私のやり方が悪いのか、Unity6では動作しないのかうまくいきませんでした。

Unity6の環境で動作したやり方を紹介します。

スポンサーリンク

実装

コードの登録

Hierarchyの+からCreate Emptyを選択し、空のGameObjectを作成します。

Hierarchyビューから作成した空のゲームオブジェクトを選択しInspectorを表示します。

Inspectorビュー下部のAddComponentを選択後New Scriptを選択し任意の名前を付けます。

作成したScriptを以下のように修正し保存します。

using System.Collections;
using System.Collections.Generic;

using UnityEngine;
using UnityEngine.UI;

public class Example : MonoBehaviour
{
    public Button m_Button;

    void Start()
    {
        m_Button.onClick.AddListener(() => ButtonClicked(42));//クリック時の関数を登録 42は任意の引数
    }
    void ButtonClicked(int buttonNo)////引数は必要な型に変更可能
    {
        Debug.Log("Button clicked = " + buttonNo);///ログ出力
        /*クリック時の処理*/
    }
}

ボタンの作成と登録

Hierarchyビューの+からUI→Canvasを選択してCanvasを作成します。(作成済みなら不要です)

続けてHierarchyビューの+からUI→Button – TextMeshProを選択してボタンを作成します。

上でコードを登録した空のGameObjectをHierarchyビューで選択します。

Hierarchyビューから作成したボタンをGameobjectのScriptに表示されるButtonにドラッグアンドドロップします。

スポンサーリンク

結果

実行し、ボタンを押すとConsleビューにログが出力されました。

また参考にさせていただいたサイト(オフィシャルサイト)には他の関数の登録方法の記載もあります。ここでは一番汎用的な今回の方法を試して記載しました。他の方法も気になる方は下のリンクから確認してください。

スポンサーリンク

参考にさせていただいたサイト

UI.Button-onClick - Unity スクリプトリファレンス
ボタンが押されたときに発生する UnityEvent

コメント

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