ニュース

Top  >   15. C#とMonoBehaviour  >   Q, UIボタンのOnClickにメソッドを登録できない

Q, UIボタンのOnClickにメソッドを登録できない

2026/03/19

メインコンテンツへスキップ
< すべてのカテゴリに戻る

A,結論

publicでない、引数が複数、またはシリアライズ非対応の型を使っている可能性があります。

原因 / 背景

  • UI は Canvas の Render Mode、EventSystem、Raycaster 設定の不足で反応しなくなることがあります。

実装 / 手順

  1. publicでない、引数が複数、またはシリアライズ非対応の型を使っている可能性があります。
  2. Canvas、EventSystem、Raycaster、対象コンポーネントの参照設定を確認してください。

サンプルコード

using UnityEngine;
using UnityEngine.UI;

public class UIButtonSample : MonoBehaviour
{
    [SerializeField] private Button targetButton;

    private void Awake()
    {
        if (targetButton != null)
        {
            targetButton.onClick.AddListener(OnButtonClicked);
        }
    }

    private void OnDestroy()
    {
        if (targetButton != null)
        {
            targetButton.onClick.RemoveListener(OnButtonClicked);
        }
    }

    private void OnButtonClicked()
    {
        Debug.Log("ボタンが押されました。");
    }
}

※ 実機確認が必要な項目は、Editor だけで判断せず、対象デバイスでも必ず動作確認してください。

難易度:Level 2(初心者)
対象プラットフォーム:PC,Visual Studio,Unity
関連キーワード:C#,UI,ボタン,aca

Level 1-2 向けバナー