インスペクターからボタンクリック時に複数のパラメーターを送信したいですか?
Unityはそれを許可していません、どうすればそれを達成できますか?他に方法はありますか?数十のボタンがあり、すべてのボタンに同じ方法を使用していますが、異なるパラメーターを送信しているため、複数のタイプのパラメーターを送信する必要があります。方法がわかりませんか?
エディタから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();
}