[Unity] 버튼 자동 선택 문제

Flaming Bun·2025년 5월 7일

Unity

목록 보기
13/39

처음 [Spacebar]를 이용해 UI를 열었을 때는 아래와 같이 UI가 잘 열렸다.

하지만 UI를 닫고 다시 [Spacebar]를 클릭하면

UI가 열리지 않았다.


처음에는 Debug.Log() 함수로 UI를 여는 함수 호출 부분을 확인해 봤다.

하지만 문제 없이 호출되고 있었다.


두 번째로 UI를 닫는 함수를 호출하는 부분에 로그를 찍었는데

CloseUIs()함수가 계속해서 호출되고 있었다.

하지만 CloseUIs() 함수가 호출되는 경우는 UI의 [X]버튼을 눌렀을 때 말고 호출되지 않는다.


CloseUIs() 함수가 어디서 호출되는지 확인하기 위해서 System.Environment.StackTrace 속성을 이용했다.

처음 버튼을 클릭해서 UI를 닫았을 때 Debug.Log()가 1번 호출되고

그 이후에 [Spacebar]를 클릭하면 CloseUIs()가 호출이 되는 것을 보고 Debug 내용을 확인해 봤다.


처음 [X]를 클릭했을 때 OnPointerClick()을 통해 호출되고 이후에 OnSubmit()으로 계속해서 호출되고 있었다.

Spacebar를 누르면 UI가 열리면서 이전에 눌렀던 CloseButton이 자동으로 선택되어 OnSubmit()으로 CloseUIs()가 호출됐던 것이다.

그래서 UI가 닫힐 때 자동 선택을 해제하는 구문을 추가해서 UI가 자동으로 닫히는 문제를 해결했다.

나와 같은 오류를 겪은 아래 글을 참고 했다.
https://discussions.unity.com/t/how-to-change-selected-button-in-eventsystem-or-deselect-it/128688

0개의 댓글