ucc1685.log
로그인
ucc1685.log
로그인
PopUp창 관리 방식 변경(리펙토링)
이준영
·
2025년 11월 21일
팔로우
0
ColorPuzzle
변경 사유
팝업창의 버튼 클릭 시, 꺼지는 이벤트 등록이 메번 등록하여 코드 관리가 힘듬.
ObjectPooling 알고리즘 복습.
여러 팝업 창이 필요할 때, 하나의 팝업 창을 돌려 쓰고 있기 때문에 여러 알림을 띄울 수 없음.
이전 방법
미리 위치를 잡아둔 팝업 창을 FindAnyObjectByType으로 불러옴.
씬 마다 원하는 기능을 팝업 창 버튼에 등록.
예시 코드
버튼을 누르면 꺼지는 간단한 기능이지만, 코드로 일일히 추가 하였음.
변경한 방법
ObjectPooling 코드 구현.
PopUp창에는 오브젝트가 비/활성화 될 때, 마다 버튼에 기본 기능을 추가/삭제 함.
ObjectPooling으로 PopUp창 생성.
PopUp창 버튼에 원하는 기능 추가
ObjectPooling 코드 구현
ObjectPool
Dictionary와 Queue를 이용한 방식으로 구현.
인덱싱 관리는 PoolIndex 열거형을 구현하여 사용.
PopUp창 수정
AlertPopUp
ConfirmPopUp
오브젝트가 활성화 될 때 마다 이벤트를 등록(오브젝트 해제 이벤트)
오브젝트가 비활성화 될 때 마다 이벤트를 제거.
생성 방법
DevStage
이벤트 등록
DevStage.Complete()
이벤트 등록 방법은 그대로
다만 오브젝트 비활성화를 등록하는 부분을 지울 수 있었다.
지워진 코드
Test
여러 팝업창 생성
ObjectPooling이 잘 작동되는 모습을 확인할 수 있다.
이준영
게임 개발자가 되기 위해서 공부하는 중입니다.
팔로우
이전 포스트
스테이지 제작 완성 버튼 구현
다음 포스트
[프로그래머스] 게임 맵 최단거리
0개의 댓글
댓글 작성