Menu 개선 / 리팩토링
2024. 2. 19. 15:24ㆍProjects/InfinityRPG
기존에는 각 GameObject들을 버튼 Listener에서 직접 SetActive함을 통해 Menu를 동작시키고 있었다.
이 경우, 해당 탭이나 관련 버튼들이 변경되면 버튼에서도 변경사항에 따라 매번 변경해야되는 문제가 있었다. 다시 말해, OCP를 위반하게 된다.

실제로, 각 메뉴들을 다소 수정하자, 연결이 끊어져버리는 문제가 발생하였다.
따라서, Menu에 탭 변경을 요구하고, 각 탭을 추상화하여 Menu Class가 간접적으로 접근할 수 있도록 설계를 변경할 생각이다.
- Awake시, GetComponentsInChildren<MenuTab>를 통해 모든 탭을 menu.tabs에 등록.
- 버튼 클릭 시, menu.OpenTab(string) 형태로 해당하는 tab을 염.
- linq를 통해 string과 일치하는 tab을 찾거나, 직접 menu.tabs를 순회. 찾은 탭의 멤버 함수 open을 실행
- 해당하지 않는 탭이 현재 열려 있는 상태라면, 탭을 닫게 됨
실제로 개발 후 내용 수정 예정
'Projects > InfinityRPG' 카테고리의 다른 글
| 프로젝트 개요 (0) | 2023.11.20 |
|---|