본문 바로가기
Unreal/Manual

Unreal C++ 위젯(UserWidget)의 Native 함수 초기화와 생성

by Dev_카페인 2023. 12. 11.
반응형

[Unreal/C++] 위젯(UserWidget)의 Native 함수 초기화와 생성

 

언리얼 엔진에서 UserWidget을 상속받아 클래스를 생성하고자 한다면 생성과 삭제 시점에 처리해야할 작업들이 있을 것 입니다. 변수의 값들을 초기화하거나 이벤트나 델리게이트를 연결하고 삭제 시점에 남아 있으면 안되는 것들을 삭제해 주는 작업이 필수적으로 요구됩니다.

 

이러한 작업들을 한 시점에 몰아서 작업하게 되는데 Unreal에서는 생성, 파괴되기 전에 처리해야 하는 작업들을 위한 함수를 지원하고 있습니다.

 

위젯(UserWidget)에서는 C++ 작업자들을 위한 Native 함수들이 주인공입니다.

수십개의 Native 함수 중 우리가 눈여겨봐야 할 것은 UserWidget.h 파일의 1270번 줄 정도에 선언되어 있는 3가지 함수 입니다.

virtual void NativeOnInitialized();
virtual void NativeConstruct();
virtual void NativeDestruct();

 

  • NativeOnInitialized : 위젯이 생성될 때 딱 한 번 호출된다. 에디터 편집 시에도 생성될 때 호출된다.
  • NativeConstruct : AddToViewport 시 호출된다. NativeOnInitialized 와 달리, Viewport 에 Add 될 때마다 불린다!
  • NativeDestruct : RemoveFromParent(RemoveFromViewport) 시 호출된다. Viewport 에서 Remove 될 때마다 불린다!

 

NativeOnInitialized() 함수는 UUserWidget 클래스를 상속받는 클래스에서 생성자 역할을 하는 함수입니다.

UserWidget의 초기화 여부를 반환하는 bool Initialize(); 함수의 마지막 부분 쯤에 호출됩니다.

NativeConstruct () 함수는 재구축 시에 동작하는 것으로 보입니다. BeginPlay와 비슷한 맥락으로 쓰이는 것이라 생각해도 좋습니다.

NativeDestruct () 함수는 Construct 함수와 반대로 파괴될 때 호출됩니다.

 

이들을 상속받아 사용할 때에는 부모의 Native함수들을 호출해 줘야 합니다. Super::Native~~()

 

UserWidget의 Native 함수 들

+ Tick

반응형