绑定事件响应

包含组件:按钮,滑动条,输入框,开关,滚动区域

 

首先我们用三个对象,button,toggle,slider来示范

01.UI交互

绑定方式1:视图窗口拖拽

创建一个空对象创建脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class TestEvent : MonoBehaviour

{


    public void OnButtonClick()

    {

        Debug.Log("button is clicked");

    }

    public void OnToggleChange(bool isOn)

    {

        Debug.Log("now toggle is " + isOn);

    }

    public void OnSliderValueChange(float rate)

    {

        Debug.Log("now slider value  is " + rate);

    }

}

在视图窗口拖动绑定

01.UI交互

运行测试,发现正常输出

01.UI交互

 

方式2:添加监听

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;



public class TestEvent : MonoBehaviour {

    public Button btn;

    public Toggle toggle;

    public Slider slider;



    private void Start()

    {

        btn.onClick.AddListener(OnButtonClick);

        toggle.onValueChanged.AddListener(OnToggleChange);

        slider.onValueChanged.AddListener(OnSliderValueChange);

    }

    public void OnButtonClick()

    {

        Debug.Log("button is clicked");

    }

    public void OnToggleChange(bool isOn)

    {

        Debug.Log("now toggle is " + isOn);

    }

    public void OnSliderValueChange(float rate)

    {

        Debug.Log("now slider value  is " + rate);

    }



}

对比:2中方法可能出现重复绑定,忘记移除等,因为没显示在界面中

         1中方法当存在多个方法绑定时候,拖拽不方便。

 

代码绑定的缺点如何克服:

也就是委托怎么防止重复添加

所有的委托添加之前先删除然后添加

btn.onClick.RemoveListener(OnButtonClick);

btn.onClick.AddListener(OnButtonClick);

 

相关文章: