遇到多个按钮,一个个赋值太麻烦。比如我需要给以下每个按钮挂上切换场景的事件
通过代码对多个按钮进行赋值,此处一定要通过int j=i;否则无法正确赋值,原因应该是直接给按钮赋值i,LoadScenes(i+1)是引用型变量,最终给每个按钮挂上的事件是以i的最终值决定的事件,所以导致运行后,无论点击哪个按钮,都是开启第12个场景。
public Button[] ButtonArry;
// Use this for initialization
void Start ()
{
ButtonArry = this.GetComponentsInChildren<Button>();
for (int i = 0; i < ButtonArry.Length; i++)
{
int j = i;
ButtonArry[i].onClick.AddListener(()=> { LoadScenes(j+1); });
//ButtonArry[i].onClick.AddListener(() => { LoadScenes(i+1); });(错误的)
}
}
public void LoadScenes(int i)
{
SceneManager.LoadScene(i);
}