订阅代码中的事件
默认情况下,应该使用检查器订阅事件,但有时最好在代码中执行此操作。在这个例子中,我们订阅按钮的 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 组件通常可以轻松地提供主要监听器:
- 按钮: onClick
- 下拉列表: onValueChanged
- InputField: onEndEdit , onValidateInput , onValueChanged
- 滚动条: onValueChanged
- ScrollRect: onValueChanged
- 滑块: onValueChanged
- 切换: onValueChanged