真Unity3d_加C#语法之(一)点击事件监听和delegate委托Action的区别

有区别吗?你老板说有就有吧

以前很久很久以前,也很讨厌一个之字有四个写法

受鲁迅影响,觉得很多余,但时移世易,

人老了,本来不喜欢的东西反而觉得真香

一、一般的监听事件可以这么写

_dropdown.onValueChanged.AddListener(DoValueChanged);

void OnValueChanged(int index)
{

}

二、网上的一个方法

mainInputField.onValueChange.AddListener (delegate {ValueChangeCheck ();});

三、其实应该这么写

public Action DoValueChanged;
_dropdown.onValueChanged.AddListener(delegate (int i){ DoValueChanged(i); });

四、基于网上的方法,理论上也应该这么写

上面第二个方法其实不错,但明显停留在“能用”就好了

但怎么能再上一层楼,”能用好“才是真的好

//伪代码,请自行补充
var dropDownList;
mainInputField.onValueChange.AddListener (delegate {
    ValueChangeCheck (dropDownList.currOption);
});

五、实际工作中,最最常用的点击方法

原理:在外面套一层壳

EventTriggerListener.Get(btn).onClick += OnButtonClick;

 

其实上面都一样的。。。。。。不过我最终选择了方法三;五也经常用

应该能扩展,也能解决类与类之间的通讯问题

什么是委托?有空再说说

你可能感兴趣的:(每天一点u3d,程序员瞎折腾,u3d代码分享)