2017-06-30 7 views
0

複数のドロップダウンのイベントハンドラと同じメソッドを使いたいと思います。メソッドの一部を動作させるには、誰が呼び出したかを知っている必要があります。ドロップダウンの名前か、最初に値として格納したタイトルです。私はこれらのドロップダウンのそれぞれについて個別のメソッドを作成できることを知っていますが、それは過剰なようです。ユニティでイベントハンドラメソッドを呼び出す方法を教える方法

OnClick(int indexSelected, string dropdownTitle) 

の行に沿って何かを行う方法はありますか?

答えて

1

複数の ドロップダウンのイベントハンドラと同じメソッドを使用したいと思います。

あなたは、それは、インスタンスによって名前やこれまでのどのプロパティお好みでどちら比較delegateの助けを借りて、パラメータとしてDropdownインスタンスを渡すことができます。

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; 
    } 
} 
関連する問題