web-dev-qa-db-ja.com

Unity 5:インスペクターからボタンクリック関数に複数のパラメーターを渡す方法は?

インスペクターからボタンクリック時に複数のパラメーターを送信したいですか?

Unityはそれを許可していません、どうすればそれを達成できますか?他に方法はありますか?数十のボタンがあり、すべてのボタンに同じ方法を使用していますが、異なるパラメーターを送信しているため、複数のタイプのパラメーターを送信する必要があります。方法がわかりませんか?

6
Affan Shahab

エディタからUnity関数を呼び出すには制限があります。パラメータは1つだけで、関数はstatic以外の関数である必要があります。

これが、コードからイベントをサブスクライブする方法を知ることが重要である理由です。以下は、Buttonがクリックされたときに呼び出される関数の例です。文字列と整数をその関数に渡します。簡単です。Buttonをエディターのいくつかのボタンスロットにドラッグすると、これが機能するはずです。

public Button someButton;

void OnEnable()
{
    //Register Button Events
    someButton.onClick.AddListener(() => buttonCallBack("Hello Affan", 88));
}

private void buttonCallBack(string myStringValue, int myIntValue)
{
    Debug.Log("Button Clicked. Received string: " + myStringValue + " with int: " + myIntValue);
}

void OnDisable()
{
    //Un-Register Button Events
    someButton.onClick.RemoveAllListeners();
}
11
Programmer