订阅代码中的事件

默认情况下,应该使用检查器订阅事件,但有时最好在代码中执行此操作。在这个例子中,我们订阅按钮的 click 事件以便处理它。

using UnityEngine;
using UnityEngine.UI;

[RequireComponent(typeof(Button))]
public class AutomaticClickHandler : MonoBehaviour
{
    private void Awake()
    {
        var button = this.GetComponent<Button>();
        button.onClick.AddListener(HandleClick);
    }

    private void HandleClick()
    {
        Debug.Log("AutomaticClickHandler.HandleClick()", this);
    }
}

UI 组件通常可以轻松地提供主要监听器: