Button[] players;
//错误
for(int i =0;i<players.Length;i++)
{
players[i].onClick.AddListener (delegate() {
this.PlayerBtnClick(players[i].gameObject);
});
}
//正确
foreach(Button go in players){
go.onClick.AddListener (delegate() {
this.PlayerBtnClick(go.gameObject);
});
}
}
在用for循环动态添加Onclick的时候发现一个问题,当用错误写法 onclick的时候发生数组越界,一开始怎么也想不明白,后来发现调用Onclick的时候,i = player.Length ,所以数组越界,改为foreach即可
原因猜测 i 每次调用的同一个对象 至于为什么调用 我就不清楚了 希望有人能够解答一下 ,如果一定要用for 可以重新赋值一下