본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
https://fastcampus.info/4oKQD6b




오늘은 홈화면 구성을 배웠다.
홈화면 씬을 생성하고 인벤토리를 껐다 켰다 할 수 있는 기능을 추가했다.
근데 이전까지는 사실 Manager랑 Comp를 분리해야 하는 이유를 이해를 못했었는데 이번 기회에 좀 더 이해가 잘 된 것 같다.
말하자면 일종의 (M)VC 패턴으로 뷰와 컨트롤러를 분리한 거였다.
HomeComp는 버튼같은 UI오브젝트를 가지고 있고, 클릭 이벤트를 셋팅한다. 여기서 "셋팅한다"는건 로직은 컨트롤러에서 불러오고 UI오브젝트의 클릭 이벤트에 가져다 붙이기만 한다는걸 의미한다. Comp는 클릭 이벤트를 감지하고 Manager에서 로직을 가져와서 동작시킨다.
이게 헷갈렸던 이유가 AddListener를 할때 넣는 함수를 신규생성해서였다. 그냥 InventoryBtn.onClick.AddListener(HomeManager.Instance.ToggleInventory); 로 바로 넣었으면 덜 헷갈렸을 것 같다.
아무튼 Manager는 컨트롤러로 UI말고 로직적인 부분을 담당한다. 인벤토리가 켜져있는지를 확인하는것도 로직의 역할이므로 여기서 처리한다. 이렇게 하면 UI가 변경되어도 Manager는 그대로 사용할 수 있다. 즉, 구조가 더 깔끔해지고 유지보수가 더 쉬워진다.
만약 UI컴포넌트에서 직접 UI 열고닫기를 제어하기 시작하면 코드가 많이 복잡해지고 매번 코드를 그에 알맞게 생성해줘야 할 것이다. 그리고 각각 서로 직접 연결하면 사이드이펙트를 추론하기가 어려워진다. 하지만 Manager라는 컨트롤러 하나에 의존하게 되면 확장도 쉬워지고 디버깅도 편해진다.
사실 그동안 이 개념이 머릿속에 정리가 안되어서 왜 이렇게 복잡하게 구성하는걸까 궁금해 하면서 강의를 들었는데, 이번에 조금 명확해진 기분이었다. 근데 이 구분이 아직 내가 느끼기에 조금 모호해서 계속 강의를 들으면서 생각의 흐름을 좀 따라가야 할 것 같다.
'유니티' 카테고리의 다른 글
| 패스트캠퍼스 환급챌린지 29일차 : 한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지 강의 후기 (0) | 2025.12.10 |
|---|---|
| 패스트캠퍼스 환급챌린지 28일차 : 한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지 강의 후기 (1) | 2025.12.09 |
| 패스트캠퍼스 환급챌린지 26일차 : 한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지 강의 후기 (0) | 2025.12.07 |
| 패스트캠퍼스 환급챌린지 : 한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지 강의 중간 점검 (0) | 2025.12.06 |
| 패스트캠퍼스 환급챌린지 25일차 : 한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지 강의 후기 (0) | 2025.12.06 |