C# 如何告诉在Unity中调用它的事件处理程序方法
对于多个下拉列表,我希望使用与事件处理程序相同的方法。为了使部分方法能够工作,他们必须知道谁调用了它们——下拉列表的名称或它存储为第一个值的标题。我知道我可以为这些下拉列表中的每一个创建一个单独的方法,但这似乎太过分了。有没有一种方法可以按照C# 如何告诉在Unity中调用它的事件处理程序方法,c#,unity3d,C#,Unity3d,对于多个下拉列表,我希望使用与事件处理程序相同的方法。为了使部分方法能够工作,他们必须知道谁调用了它们——下拉列表的名称或它存储为第一个值的标题。我知道我可以为这些下拉列表中的每一个创建一个单独的方法,但这似乎太过分了。有没有一种方法可以按照 OnClick(int indexSelected, string dropdownTitle) ? 我想对多个事件使用与事件处理程序相同的方法 下拉列表 您可以在委托的帮助下,将下拉列表实例作为参数传递,然后根据实例、名称或您喜欢的任何属性比较它是哪一
OnClick(int indexSelected, string dropdownTitle)
?
我想对多个事件使用与事件处理程序相同的方法
下拉列表
您可以在委托
的帮助下,将下拉列表
实例作为参数传递,然后根据实例、名称或您喜欢的任何属性比较它是哪一个
public Dropdown dropdown;
Dropdown otherDropDown;
void OnEnable()
{
//Register to onValueChanged Events
dropdown.onValueChanged.AddListener(delegate { callBack(dropdown); });
}
void OnDisable()
{
//Un-Register from onValueChanged Events
dropdown.onValueChanged.RemoveAllListeners();
}
void callBack(Dropdown currentDropdown)
{
//Compare dropdown by instance?
if (currentDropdown == otherDropDown)
{
int value = currentDropdown.value;
}
//Compare dropdown by name
if (currentDropdown.name == "YourDPName")
{
int value = currentDropdown.value;
}
}