2017-10-12 47 views
0

團結我有以下代碼:如何在按鈕點擊功能上添加數值?

public Button[] SearchPlayers; 

void Start() 
{ 
    for(int i = 0; i < 10; i++) 
    { 
     // SearchPlayers[i].onClick.AddListener(Click(i));//here error 
     SearchPlayers[i].onClick.AddListener(Click);//not error 
    } 
} 

void Click(int i) 
{ 
    print(i+":button was clicked") 
} 

的問題是,如果你看到我的代碼有一個整數i。所以這個值給出了一個錯誤。我怎樣才能解決這個錯誤?

+0

你能指定你的問題嗎?給我們更多關於上下文的信息?什麼是SearchPlayers? – Rafiwui

+0

SearchPlayers是數組的按鈕 –

+0

現在你作爲輸出得到了什麼?你想添加什麼值在哪裏? – Rafiwui

回答

1

問題在於上下文。呼叫點擊(i)返回無效。 AddListener不接受void。

您可以通過創建適當的上下文來提供參數來解決此問題。

public Button[] SearchPlayers; 

void Start() 
{ 
    for(int i = 0; i < 10; i++) 
    { 
     //Cache the value 
     int index = i; 

     SearchPlayers[i].onClick.AddListener(() => Click(index)); 
    } 
} 

void Click(int i) 
{ 
    print(i+":button was clicked") 
} 
+0

謝謝!你是完美的 –

+0

不是問題! – Randomman159