[Unity] 버튼 클릭 이벤트가 실행되지 않는다?
버튼 클릭이 되지 않는다면 여러가지를 확인해보아야 한다.
우선 나는 스크립트를 사용하여 onClick 함수를 지정하고 있었다.
1. 올바른 오브젝트를 찾고 있는가?
2. EventSystem이 존재하는가?
3. 버튼이 여러번 클릭된 후 클릭된 상태로 멈춘다면?
4. 버튼을 가리고 있는 오브젝트가 있는가?
1. 올바른 오브젝트를 찾고 있는가?
GameObject.Find("Canvas").transform.Find("OpenBook").Find("btnYes").gameObject.GetComponent<Button>().onClick.AddListener(() =>
{
Debug.Log("btnYes");
});
스크립트는 위와 같았다. 버튼 오브젝트를 정상적으로 찾았지만 디버그 코드가 작동하지 않았다...!
2. EventSystem이 존재하는가?
존재했다...! 이 버튼만 작동하지 않고 다른 버튼은 정상 작동했다.
3. 버튼이 여러번 클릭된 후 클릭된 상태로 멈춘다면?
이건 조금 번외지만 버튼이 클릭되다가 멈춘다면
버튼 컴포넌트의 Navigation을 None으로 설정한다.
4. 버튼을 가리고 있는 오브젝트가 있는가?
나는... 이게 문제였는데.........
여기 Canvas -> OpenBook -> btnYes와 btnNo가 작동하지 않았고......
캔버스가 이와 같아 아무 생각 없이 가려지는 부분이 없다고 생각했다......
그러나......... Scene을 다시 살펴보니.........
텍스트 오브젝트가 보기 좋게 버튼을 가리고 있었다...... ㅋㅋ... 이걸 생각없이 못 챙겨서 한 두 시간 날렸다 ㅋㅋ...ㅋㅋㅋ
텍스트 오브젝트 크기를 조절하고
버튼이 텍스트 위로 올라오도록 순서를 조절해줬다
주의하자... 이걸 못 봐서 sprite renderer 레이아웃 순서를 조절하고 별 난리를 다 쳤다