Unity/Unity 개발

Unity 공통 alert, confirm 매니저 제작

leedh1211 2025. 7. 1. 21:41

학습 동기

자바스크립트에서 자주 쓰는 alert()이나 confirm() 함수처럼, 간단하게 호출만 하면 팝업을 띄우고 사용자의 응답을 받을 수 있는 구조가 참 편리하다고 느꼈다. Unity에서도 그런 식으로 팝업을 쉽게 띄울 수 있으면 여러 시스템에서 공통으로 쓸 수 있을 것 같아서, 전역에서 접근 가능한 팝업 시스템을 직접 만들어보기로 했다.

학습 내용

StaticPopupManager라는 싱글톤 클래스를 만들어서 팝업을 전역에서 사용할 수 있도록 구성했다. ShowAlert() 함수는 OK 버튼 하나만 있는 알림창, ShowConfirm()은 Yes/No 버튼으로 사용자 선택을 받을 수 있도록 만들었다. 버튼 클릭 이벤트는 중복 실행을 막기 위해 onClick.RemoveAllListeners()로 초기화한 뒤, 콜백을 새로 등록하는 방식으로 처리했다. UI 요소들은 [SerializeField]를 통해 인스펙터에서 직접 연결해서, 런타임 오류도 줄이고 퍼포먼스도 아끼도록 했다.

추가 궁금증

지금은 단순한 알림창과 확인창만 있지만, 나중엔 선택지가 여러 개 있는 팝업이나, 텍스트 입력까지 가능한 형태로 확장해볼 수 있을 것 같다. 그리고 게임 안에서 사용하는 대화창도 이번 팝업처럼 공통된 구조로 만들면 유지보수나 기능 확장 측면에서 훨씬 효율적일 것 같다는 생각이 들었다. 처음부터 구조를 잘 잡아두면 다양한 상황에서 재사용할 수 있는 시스템이 될 수 있을 것 같다.

느낀 점

이번에 만든 팝업 시스템은 기능은 아직 기본적이지만, 구조 자체는 깔끔하게 정리돼 있어서 다른 UI 시스템에도 쉽게 적용할 수 있을 것 같다. 앞으로 버튼 애니메이션이나 효과음, 멀티라인 메시지, 타이머 같은 기능들을 하나씩 추가해가면서 다듬으면, 다른 프로젝트나 상용 게임에서도 충분히 활용 가능한 수준으로 만들 수 있을 것 같다. 특히 대화형 다이얼로그도 이런 식으로 통합하면, UI 공통화에 큰 도움이 될 것 같다.

'Unity > Unity 개발' 카테고리의 다른 글

Unity Tilemap Animator  (0) 2025.07.03
Rule Tile  (0) 2025.07.02
룬 / 스킬 시스템 구조 통합 방향 설계  (0) 2025.06.30
Photon PUN2의 로비 및 룸 구조 이해  (0) 2025.06.13
Unity 클라이언트와 서버 연동 전략  (0) 2025.06.12