1. 程式人生 > >Unity BUG解決——通過陣列批量註冊Button的Addlistener事件,會提示事件陣列越界異常

Unity BUG解決——通過陣列批量註冊Button的Addlistener事件,會提示事件陣列越界異常

這個Bug是這樣的:

假設現在有兩個陣列分別是button陣列StoreButton,長度為3;事件陣列ItemString,長度為3;兩個陣列的長度是相等的

我要將三個事件分別新增到三個Button裡面,長度都是3 , 用for迴圈新增事件, 把第i個事件新增到第i個Button裡面 會提示陣列越界。


執行後打印出的結果是:


這就很神奇了,這樣看起來陣列長度都是相同的,為什麼會提示陣列越界異常呢。

是這樣的,在Unity的Button事件中,for迴圈的i是迴圈體公用引數,像這樣寫的話最後itemString[i]的 i==count,

在內部再自定義一個變數index = i 讓itemString[index]就可以解決這個陣列越界一場的問題了。

程式碼如下