AddListner를 사용하는 이점은, 동적으로 이벤트 리스너를 추가하거나 제거 할 수 있다는 점이다.
주로 유니티의 UI 시스템에서 버튼 클릭과 같은 이벤트에 사용된다.
for (int i = 0; i < buttons.Length; i++)
{
buttons[i].interactable = false;
buttons[i].onClick.AddListener(() => OnClickCharacter(i));
}
이렇게 했는데 오류가 발생했다.
찾아 보니까 int index = i;로 변수를 선언하고, 이를 매개변수로 넣었다.
for (int i = 0; i < buttons.Length; i++)
{
int index = i;
buttons[index].interactable = false;
buttons[index].onClick.AddListener(() => OnClickCharacter(index));
Debug.Log(index);
}