2017-10-12 114 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