如何动态添加NGUI 控件的监听事件

来源:互联网 发布:php倒着做乘法表 编辑:程序博客网 时间:2024/05/16 05:17

遇到点小问题,刚好解决了,记录一下。

在NGUI中 所有继承自UIProgressBar类的脚本都会有一个onChange参数,表示空间value数值改变的监听事件。

onChange 是一个列表 List<EventDelegate>

需要监听事件的脚本:

public class slider : MonoBehaviour {// Use this for initialization    private UISlider m_slider;    private EventDelegate ochange;    public  float a = 2.0f;    void OnEnable()    {        m_slider = transform.Find("Slider").GetComponent<UISlider>();        ochange = new EventDelegate(this, "OnsliderChange");        ochange.parameters[0] = new EventDelegate.Parameter(this, "a");        m_slider.onChange.Add(ochange);    }    public void OnsliderChange(float value)    {        //UISlider.current.value        //UIPopupList.current.value.Trim;        //string a="bbbaccc avgg";        //string[] b=a.Split(new char[] { 'a' }, System.StringSplitOptions.RemoveEmptyEntries);        //for (int i = 0; i < b.Length;i++ )        //{        //    Debug.Log(b[i]);        //}        Debug.Log(" change " + value);            Debug.Log(" change " + m_slider.value);    }}
说明:将OnsliderChange赋值给 ochange ,用find方法找到UIslider脚本的控件,将ochange添加到onChange中。注意:脚本中的a并无意义,只是为了测试为EventFelegate

动态添加参数。a必须为public,另外this可以为其他脚本,用this只是为了方便。

0 0