ニュース

Top  >   15. C#とMonoBehaviour  >   Q, UnityEvent処理が実行されません。

Q, UnityEvent処理が実行されません。

2026/03/19

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

A,結論

リスナーの登録と、UnityEventのInvoke呼び出しの両方を確認します。

原因 / 背景

Inspectorで登録したイベントには必ずしもAddListenerが必要ではありません。イベントを発火する側の処理も必要です。

実装 / 手順

  1. Inspectorに対象GameObjectと公開メソッドが登録されているか、またはコードでAddListenerしているか確認します。
  2. 任意のUnityEventは処理が成立した場所でInvokeを呼びます。Button.onClickなどは対応コンポーネントが発火します。
  3. 購読と解除のタイミング、参照切れ、対象GameObjectの状態を確認します。

サンプルコード

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#,aca

Level 1-2 向けバナーLevel 3-5 向けバナー 1Level 3-5 向けバナー 2