一、简介
Button继承自Selectable,IPointerClickHandler、ISubmitHandler。添加了一个UnityEvent类型的事件onClick。
二、功能
1、onClick事件可以添加用户自定义的监听,具体方法可以通过编辑器添加也可以通过onClick.AddListener添加。
2、OnPointerClick会调用Press方法来回调onClick。
3、OnSubmit也会调用Press方法,并切换状态为Pressed,并开启协程调用OnFinishSubmit,让状态渐变为当前状态(通过UpdateSelectionState获得的状态)。
可以看出Button就是相对于Selectable添加了响应点击和确认事件的接口,并且开放了可添加用户自定义监听的onClick事件。
4、botton的点击之后有个颜色变化,是使用协程打开,但是没有在别的地方进行停止,比较合理的设计应该是不可见或者被删除的时候将协程停掉
public virtual void OnSubmit (BaseEventData eventData) {
Press ();
// if we get set disabled during the press
// don't run the coroutine.
if (!IsActive () || !IsInteractable ())
return;
DoStateTransition (SelectionState.Pressed, false);
StartCoroutine (OnFinishSubmit ());
}