Unity中button 和toggle监听事件函数有无参数
2026/6/17 4:08:29 网站建设 项目流程

1如果调用监听调用的函数没有参数则用

allselect.onClick.RemoveAllListeners(); allselect.onClick.AddListener(OnAllProInButtonClick);

2 如果需要传参数进去则要用lamude表达式

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

Toggle Select_Info = processmanagerPrefab.transform.Find("Information/Select").GetComponent<Toggle>(); Select_Info.onValueChanged.RemoveAllListeners(); Select_Info.onValueChanged.AddListener(TurnSelectALLNot);

TurnSelectALLNot函数可以无参数的或默认参数为Toggle.isOn的状态的

private void TurnSelectALLNot(bool isOn ) { foreach (var toggle in proToggles.Values) { if (toggle != null) { if (isOn) { toggle.isOn = true; } else { toggle.isOn = false; } } } }

Button

Button allselect = processmanagerPrefab.transform.Find("TaskDetailButtons/Button_Select").GetComponent<Button>(); allselect.onClick.RemoveAllListeners(); allselect.onClick.AddListener(() =>OnAllProInButtonClick(Select_Info));

思考是不是可以类似toggle有默认参数bool isOn但不用在函数中写的情况呢?

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询