DevLog (Merged: 2026-02-07 ~ 2026-02-08)
[2026-02-07] App Entry Point & UI Improvements
작업 내용 요약
1. App Entry Point 및 씬 관리 구조 개선
AppManager및Appdelegate리팩토링:- 공통 로직을
Common/App/AppManagerBase및Common/App/Appdelegate로 이동하여 재사용성을 높임. ISceneController인터페이스 도입으로 씬 관리 추상화.- 프로젝트별
AppManager(CatSudoku.AppManager)가AppManagerBase를 상속받아 구현.
- 공통 로직을
- 초기화 로직 개선:
AppInitializer(RuntimeInitializeOnLoadMethod(AfterSceneLoad))를 통해 앱 시작 시점 명확화.- 첫 번째 씬 로드 시
sceneLoaded콜백이 누락되는 문제를 해결하기 위해ProcessInitialScene수동 호출 로직 추가.
2. UI/UX 개선 및 반응형 레이아웃 구현
- Canvas Scaler 설정 변경:
- Portrait 모드 및 정사각형 화면 대응을 위해
matchWidthOrHeight를0f(Width 기준)으로 변경.
- Portrait 모드 및 정사각형 화면 대응을 위해
- GameScene 반응형 레이아웃 (Refactoring):
- 초기에는 스크립트 기반
ResponsiveBoardLayout을 시도했으나, Unity UI 시스템을 활용한VerticalLayoutGroup기반으로 전면 리팩토링. - 구조 변경:
LayoutContainer (VerticalLayoutGroup) ├── HeaderPanel (Fixed Height) ├── BoardContainer (Flexible Height) │ └── GameBoard (AspectRatioFitter 1:1) ├── ToolsBar (Fixed Height) └── NumberPad (Fixed Height) BoardLayoutAdjuster추가: 보드 크기가 변경될 때 셀 크기(cellSize)를 자동으로 계산하여 그리드 정렬 유지.SudokuPrefabMaker업데이트: 에디터 스크립트를 수정하여 위 구조대로 프리팹이 생성되도록 변경 (현재는 레이아웃의 기본 틀만 생성하고 디테일은 프리팹에서 직접 수정하는 방향으로 전환).
- 초기에는 스크립트 기반
3. 기타 수정 사항
SudokuGameUI에서 불필요한ResponsiveBoardLayout참조 제거.ISceneController및SceneBase정리.
다음 계획 (ToDo)
- GameScene UI 프리팹 (
SudokuGameUI) 레이아웃 미세 조정 (사용자 직접 진행). - 반응형 레이아웃 테스트 및 검증.
- 추가적인 UI 폴리싱 및 게임 로직 개선.
[2026-02-08] Pop-up System Overhaul & Input Handling
🔄 Major Changes
1. 팝업 시스템 대대적 개선 (Popup System Overhaul)
기존의 단순하고 독립적인 팝업 구조를 확장성 있고 UX 친화적인 시스템으로 개편했습니다.
- BasePopup 기능 확장:
ClosePopup(): 팝업을 닫는 표준 메서드. 단순히 닫는(Hide) 것뿐만 아니라Destroy를 수행하여 리소스를 정리합니다.SetCloseAction(Action action): 팝업이 닫힐 때 자동으로 실행될 콜백을 등록합니다. 어떠한 방식으로 닫히든(버튼, ESC 등) 액션 수행을 보장합니다.- Dimmed Background:
useDimmedBackground옵션을 통해 팝업 뒤에 자동으로 반투명 검정 배경을 생성하여 클릭을 차단하고 가독성을 높였습니다.
- GameClear / GameOver Popup 단순화:
- 복잡한 버튼(Next, Retry, MainMenu) 구조를 단일 확인(Confirm) 버튼으로 통합했습니다.
- 확인 버튼 클릭, 닫기 버튼(X), ESC 키 입력 등 어떤 입력을 받더라도
ClosePopup()이 호출되며, 미리 등록된 다음 스테이지 이동 또는 재시작 액션이 자동으로 실행됩니다. - 불필요해진
Home버튼은 비활성화했습니다.
2. 중앙 집중식 입력 처리 (Centralized Input Handling)
개별 스크립트에서 입력을 감지하던 방식의 문제점(중복, 우선순위 관리 어려움)을 해결하기 위해 Chain of Responsibility 패턴을 도입했습니다.
- AppManager: 최상위에서
Update루프를 돌며 ESC 키 입력을 감지합니다. - SceneController:
AppManager로부터 입력을 받아 현재 활성화된MainUI로 전달합니다. - MainUI (SudokuGameUI):
- 먼저 활성화된 팝업이 있는지 확인합니다.
- 있다면
Popup.OnBackKey()를 호출하여 팝업만 닫고, 이벤트를 소비(return true)합니다. - 없다면 자신의 백키 로직(메인 메뉴 이동 등)을 수행합니다.
이로써 팝업이 떠 있을 때 뒤에 있는 게임 UI나 씬이 반응하는 문제를 원천적으로 차단했습니다.
💾 Fixing Game Save Issue (Previous Session)
게임 중 메인 메뉴로 이동하거나 스테이지를 클리어했을 때 저장이 올바르게 이루어지지 않던 문제를 수정했습니다.
- GameManager:
CompleteCurrentStage()메서드를 추가하고NextStage로직을 변경하여, 스테이지 클리어 시 즉시 저장을 수행하도록 했습니다. - SudokuGameUI:
ShowGameClear팝업에서 홈 버튼 클릭 시에도CompleteCurrentStage()를 호출한 후 이동하도록 수정하여, "다음 레벨" 버튼을 누르지 않고 나가더라도 클리어 상태가 저장되도록 보장했습니다. - SaveSystem:
ClearSave()메서드가 진행 중인 게임 데이터(SAVE_KEY)만 삭제하고, 사용자의 스테이지 진행 정보(PREF_STAGE)는 유지하도록 수정했습니다.
🐛 Bug Fixes & Refactoring
- BasePopup / BaseUI 상속 구조 정리:
BaseUI에virtual OnDestroy메서드가 없어 자식 클래스에서 오버라이드할 때 발생하던 컴파일 오류를 해결했습니다.BasePopup과MainMenuUI등에서override키워드를 명시적으로 사용하여 경고를 제거하고 OOP 구조를 준수했습니다.
📋 Task Plan & Progress (Completed)
금일 진행된 팝업 개선 작업의 상세 내역입니다.
- Enhance
BasePopup- ESC 키 지원 (
OnBackKey) - 자동 파괴 및 닫힘 액션 (
ClosePopup,SetCloseAction) - 딤드 배경 옵션 (
useDimmedBackground)
- ESC 키 지원 (
- Implement Centralized Input Handling
AppManager->Scene->Popup구조로 ESC 입력 전파
- Refine Popup UX
GameClearPopup:Next버튼을Confirm으로 통합GameOverPopup:Retry버튼을Confirm으로 통합- 불필요한
Home버튼 제거
- Documentation
README.md업데이트DevLog작성
📝 Next Steps
- 팝업 애니메이션 고도화 (현재는 기본적인 스케일 애니메이션만 적용됨)
- 설정(Settings) 팝업 구현 및 연동
- 사운드 매니저와 팝업 연동 (버튼 클릭음, 팝업 등장음 등)

반응형
'AI > Unity' 카테고리의 다른 글
| 유니티 공용 모듈(Common Module) 제작 및 연동 (실패 노트) (3) | 2026.02.09 |
|---|---|
| [2026-02-08] 스도쿠캣 (1) | 2026.02.08 |
| 2월 5일 개발일지 - 프로젝트 "Sdokucat" (0) | 2026.02.06 |
| # 📅 2026년 2월 4일 개발일지 - 프로젝트 "Sdokucat" 🐾 (0) | 2026.02.05 |
| # 2026-02-03 개발 로그: CT 턴 시스템 구현 및 카메라 연출 (0) | 2026.02.04 |