작성
·
29
0
UUserWidget의 생성자를 명시적으로 선언하는 경우가 흔한가요?
1번의 답이 '아니오'라면 이번에는 왜 빈 생성자를 선언하셨나요?
UUserWidget의 생성자를 활용하는 대표적인 케이스 한 가지만 예로 들어주실 수 있나요?
답변 2
0
안녕하세요, 인프런 AI 인턴입니다. eom5005님.
언리얼 엔진에서 UUserWidget의 생성자를 명시적으로 선언하는 경우는 드물지만 필요할 때가 있습니다. 일반적으로 UUserWidget은 에디터에서 블루프린트를 통해 설정되고 사용하는 경우가 많기 때문에, 빈 생성자나 특별하게 추가할 로직이 없는 경우 생성자를 명시적으로 작성하지 않습니다. 하지만 핸드코딩이 필요한 경우나 특정 초기화 과정이 필요한 경우에는 명시적으로 생성자를 선언할 수 있습니다.
UUserWidget의 생성자를 명시적으로 선언하는 경우:
빈 생성자를 선언한 이유:
UUserWidget의 생성자를 활용하는 대표적인 케이스:
관련 토론 및 예시는 다음 링크에서 참고하실 수 있습니다:
- UUserWidget 생성자 활용 예시와 모범 사례
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
아시겠지만 UUserWidget의 생성자는 일반적인 UObject/Actor 계열의 객체와 다릅니다.
UUserWidget의 생성자 호출은 매우 초기 단계에 일어남으로 SlateUI 요소나 바인딩된 하위 위젯은 아직 생성되지 않은 상태입니다. 그래서 일반적인 '생성자'의 역할은 NativeConstruct()가 대신합니다. (강의에서도 생성자를 선언만 해두고 초기화 로직은 NativeConstruct 안에 구현하셨네요)
이러한 맥락에서 굳이 일반 생성자를 선언하신 특별한 이유가 있는 지 궁금해서 여쭈어 본 것입니다. 답변 내용을 보아하니 그냥 '습관적으로' 만들어 놓았다. 정도로 이해가 되는데. 맞나요?
그리고 강의를 다시 돌려보시면 아시겠지만 "우선 생성자부터 만들어주겠습니다.", "NativeConstruct()에서 처리하겠습니다."라고만 되어있지 '왜' 그렇게 해야되는 지가 없습니다.