인프런 커뮤니티 질문&답변
BaseUI, UIManager
작성
·
9
0
BaseUI, UIManager에 처리에 대한 구분이
제가 명확하게 이해가 잘안되고 헷갈려 질문드립니다.
1. BaseUI에서 처리하는 함수 및 기능에 대한 기준이 무엇인가?
2.UIManager에서 처리하는 함수 및 기능에 대한 기준이 무엇인가?
OpenUI를 할때는 SetParent를 BaeUI안의 Init함수에서 하고
CloseUI를 할때는SetParent UIManager에서 하는데
어떤 기준이나 지향점으로 하신건가 궁금합니다.
CloseUI에서도 부모의 설정을 매니저에서 해줬으니 OpenUI도 매니저에서 설정해주면
통일성이 있지 않을까? 그런데 강사님은 어떤기준으로 하셨을까 궁금합니다.var siblingIndex = UICanvasTrs.childCount; ui.Init(UICanvasTrs); ui.transform.SetParent(UICanvasTrs); // 이런식? ui.transform.SetSiblingIndex(siblingIndex); ui.gameObject.SetActive(true); ui.SetInfo(uiData); ui.ShowUI();마지막으로 코드가 이해가 잘 안되는게
BaseUI에서의 CloseUI함수에서는UIManager.Instance.CloseUI(this);호출하는데 BaseUI에서의 ShowUI는
매지저 호출에 처리가 없어서
이것도한 2개가 달라 많이 헷갈리네요. ㅠ
코드가 작성되는 방식은 여러가지겠지만
강사님의 코드의 작성의 의도와 목적을 잘 이해하고 싶어서 질문드립니다. ~
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. CodeKimbap님.
Unity에서 UI를 관리하는 구조는 종종 헷갈릴 수 있습니다. 특히 BaseUI와 UIManager에서의 기능과 역할 구분은 중요합니다. 이에 대해 다음과 같이 설명드리겠습니다.
1. BaseUI에서 처리하는 함수 및 기능의 기준
BaseUI는 일반적으로 UI 요소의 기본 기능과 상태를 관리합니다. 이는 각 UI 프리팹의 기본 동작을 정의하며, UI 슬롯이나 버튼 같은 개별 UI 요소들이 상속받아 사용할 수 있습니다. 기본적인 UI 활성화, 비활성화 또는 애니메이션 동작이 주로 담기게 됩니다.
2. UIManager에서 처리하는 함수 및 기능의 기준
UIManager는 여러 UI 요소를 통합적으로 관리하는 역할을 합니다. 여러 개의 UI를 각각 열고 닫는 기능, 애니메이션의 관리, 전체 UI의 상태 추적 등 전반적인 UI 관리를 담당합니다. UI 이동, 순서 설정, 그리고 UI 스택 관리 등과 같은 보다 큰 그림의 기능 관리가 주된 역할입니다.
3. SetParent 사용 위치의 기준
OpenUI 시점에 UIManager 밖에서 SetParent를 사용하는 이유는 UI를 새롭게 초기화하며 특정 장소로 옮기기 위함입니다. 초기화가 완료된 후 특정 위치로 배치합니다. 반대로 CloseUI에서는 UIManager에서 닫힘을 처리하면서 추가적인 UI 정리를 담당하게 됩니다.
4. CloseUI와 ShowUI의 호출 위치 차이
CloseUI에서는 UI가 끝난 후 UIManager에서 마무리 정리를 원활하게 할 수 있도록 합니다. 반면, ShowUI는 개개의 UI 요소에서 처음 활성화되면서 내부 로직을 실행하므로 외부 매니저의 개입이 필요치 않습니다.
매니저 호출 처리의 위치 차이는 주로 함수의 의미와 코드의 구조적 설계 원리에 따라 달라질 수 있으며, 사용 용도에 맞춰져 있는 것입니다.
이해를 돕기 위해 지식공유자님의 기존 답변도 참고해볼 수 있습니다. 관련된 주제로 이미 많은 수강생들이 유용한 답변을 받고 있습니다. UI Canvas가 여러개일 경우에서 UI와 그 매니저 간 상호작용에 더 깊이있는 정보를 확인하실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드립니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




