1如果调用监听调用的函数没有参数则用
cs
allselect.onClick.RemoveAllListeners();
allselect.onClick.AddListener(OnAllProInButtonClick);
2 如果需要传参数进去则要用lamude表达式
cs
allselect.onClick.RemoveAllListeners();
allselect.onClick.AddListener(() =>OnAllProInButtonClick(Select_Info));
unallselect.onClick.RemoveAllListeners();
unallselect.onClick.AddListener(() => OnUnAllProInButtonClick(Select_Info));
RefreshButton.onClick.RemoveAllListeners();
RefreshButton.onClick.AddListener(() => OnClickRefreshButtonForTaskprocess(task.TaskId));
3 调用函数时两者不现
Toggle
cs
Toggle Select_Info = processmanagerPrefab.transform.Find("Information/Select").GetComponent<Toggle>();
Select_Info.onValueChanged.RemoveAllListeners();
Select_Info.onValueChanged.AddListener(TurnSelectALLNot);
TurnSelectALLNot函数可以无参数的或默认参数为Toggle.isOn的状态的
cs
private void TurnSelectALLNot(bool isOn )
{
foreach (var toggle in proToggles.Values)
{
if (toggle != null)
{
if (isOn)
{
toggle.isOn = true;
}
else
{
toggle.isOn = false;
}
}
}
}
Button
cs
Button allselect = processmanagerPrefab.transform.Find("TaskDetailButtons/Button_Select").GetComponent<Button>();
allselect.onClick.RemoveAllListeners();
allselect.onClick.AddListener(() =>OnAllProInButtonClick(Select_Info));
思考是不是可以类似toggle有默认参数bool isOn但不用在函数中写的情况呢?