onClick
버튼에 메서드를 추가 할 때 함수의 인수는 항상 const = array of buttons.length + 1
입니다. 내가 어디로 잘못 되었습니까?
all_buttons
비어 있지 않습니다. 세 가지 다른 버튼을 클릭했습니다. Unity 로그 스크린 샷 : 링크
Button[] all_buttons = GetComponentsInChildren<Button>();
for (int i = 0; i < all_buttons.Length; i++) {
Debug.LogWarning(all_buttons[i]+" => addLoad with index "+ (m_LvlStartIndex + i));
if (levelScript)
all_buttons[i].onClick.AddListener(() => Load(m_LvlStartIndex+i));
}
public void Load(int level) {
Debug.LogWarning("Loading "+level+" level...");
Application.LoadLevel(level);
}
업데이트 : 변경
all_buttons[i].onClick.AddListener(() => Load(m_LvlStartIndex+i));
...에
int tempI = i;
all_buttons[i].onClick.AddListener(() => Load(m_LvlStartIndex+tempI));
모두에게 감사합니다 !!
문제는 다음 코드 줄에 있습니다.
all_buttons[i].onClick.AddListener(() => Load(m_LvlStartIndex+i));
AddListener
함수 와 함께 사용하기 전에 i를 임시 변수에 저장해야 합니다. 아래 코드로 수정해야합니다.
int tempI = i;
all_buttons[i].onClick.AddListener(() => Load(m_LvlStartIndex+tempI));
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다