이번에 진행하는 팀 프로젝트에서 UIManager를 제작하게 되었다.
다른 사람들과 프로젝트를 진행하면서 UIManager를 항상 사용하는 입장이어서
대략적인 이유와 사용법은 알지만 제작하는 입장을 생각해 보니 이를 왜 만들고
어떤 구조로 제작해야 하는지 감이 안 잡혔다. 따라서 UIManager를 왜 제작해야 하며
이를 통해 얻을 수 있는 장점을 알아보고자 한다.
1. UIManager가 뭘까?
유니티에서 주로 특정 기능을 주로 담당하는 스크립트를 주요기능 + Manager 형식의 이름으로
제작하곤 한다. 그럼 UIManager는 오로지 UI를 관리하기 위해 제작하는 스크립트라고 할 수 있다.
요약하자면 유니티 프로젝트에서 UI요소들을 관리하고 제어하기 위해 제작하는 기능이다.
2. UIManager의 사용 이유?
UIManager는 프로젝트의 UI요소들을 모아놓고 관리하는데 이러한 방식이
주는 이점이 뭘까?
- 모듈화로인한 코드 중복 최소화
특정 UI에 접근을 하려는 스크립트가 1000개 있다고 가정하면
접근을 위한 코드를 중복해서 1000번 작성해야한다.
하지만 1000개의 스크립트가 필요한 UI요소를 UIManager 한 곳에서
접근한다면 중복 코드를 작성하지 않아도 된다.
- 간편한 접근으로 인한 유지보수성 증가
특정UI의 구성 변경이 필요할 때 모든 UI의 요소를 조작하는 것 이아닌
UIManager에서 해당 UI 요소만 조작하면 되기 때문에 변경과 업데이트 측면에서
유지보수성과 접근성이 높아진다.
- UI의 유연한 상태 관리
사용자 상호 작용, 게임 상태 등 변화에 따른 UI를 프리팹이나 인스턴스화 같은 방법을 통하여
UI요소를 동적으로 관리할 수 있다.
3. 구조 생각해보기
1. UIManager는 모든 UI가 접근해야 하기 때문에
이 곳에는 모든 UI에 적용 될만한 공통된 메서드를 제작해야한다.
예를 들어 UI의 활성화/비활성화와 같이 모든 UI가 사용할만한 기능을 토대로
파생하여 관련된 메서드를 하나씩 추가해 나가면 될 것 같다.
2. UI의 요소를 가져와야 하기 때문에 UI의 기본 정보를 가져올 수 있게 해주는
UI의 기초 스크립트가 필요할 것 같다. 따라서 기초 스크립트를 상속 받는 모든 UI는
관련된 하위 UI 속성 정보를 모두 긁어올 수 있는 기능을 넣어야겠다.
3. 현재 다루고자 하는 UI가 팝업인지 아닌지 구분해줘야 하기 때문에
이를 상속받는 팝업 스크립트를 만들어서 UI를 구분해야 할 것 같다.
-> UI가 딱히 팝업이 아니라 그냥 조작해야 하는 일반 UI의 기능일 수도 있기 때문이다.
결론
UI의 요소를 가져올 기초 스크립트, 공통적인 메서드를 제작할 UIManager, 팝업인지 확인 할
팝업 스크립트, 이 3가지를 우선적으로 제작하며 기능을 추가해 나가야겠다.
'프로젝트 기록 > Project N' 카테고리의 다른 글
인벤토리 개발 기록 (창고와 인벤토리) (0) | 2024.04.03 |
---|---|
UIManager 구현 기록 (1) | 2024.02.13 |
인벤토리 기능 MVC 적용 (0) | 2024.02.01 |
MVC 패턴에 대한 이해 (1) | 2024.01.30 |
팀원 코드 분석 / CSV란? (CSV Data) (2) | 2024.01.30 |