본문 바로가기
[ Unreal5 ]/- 언리얼엔진5 실습

언리얼엔진5 c++ CanvasPanel

by MRG 2025. 1. 13.
728x90
반응형

 

▣ .h, .cpp 코드에 헤더를 추가합니다. 

 

 

▣ .h 헤더파일에 UCanvasPanel을 선언합니다. 

 

▣ HUDWidget: UI를 관리하는 UUserWidget의 인스턴스를 가리킵니다.
CreateWidget: 새로운 UUserWidget 인스턴스를 생성합니다.
GetWorld()->GetFirstPlayerController(): 현재 월드에서 첫 번째 플레이어 컨트롤러를 가져옵니다.
HUDClass: 블루프린트나 C++로 정의된 HUD 위젯 클래스입니다.
목적: HUDWidget이 아직 생성되지 않았다면, CreateWidget을 통해 생성합니다.

▣ HUDWidget->IsInViewport(): HUDWidget이 현재 화면에 추가되었는지 확인합니다.
HUDWidget->AddToViewport(): HUDWidget을 화면에 추가하여 표시합니다.
목적: HUDWidget이 화면에 표시되지 않은 경우, 화면에 추가합니다.

▣ GetWidgetFromName("CrossHair_CanvasPanel"): HUD 위젯 내에서 이름이 CrossHair_CanvasPanel인 위젯을 검색합니다.
Cast<UCanvasPanel>: 검색된 위젯을 UCanvasPanel로 캐스팅하여 CrossHairCanvas에 저장합니다.
SetVisibility(ESlateVisibility::Hidden): CrossHairCanvas의 가시성을 숨깁니다.
ESlateVisibility::Hidden: 위젯을 숨기지만 레이아웃 공간은 유지합니다.

▣ 코드 실행 흐름 요약
HUDWidget 생성 확인:
HUDWidget이 이미 생성되어 있는지 확인하고, 없으면 CreateWidget으로 생성.

HUDWidget 화면 추가:
HUDWidget이 화면에 추가되지 않은 경우, AddToViewport로 추가.

CrossHairCanvas의 Visibility 변경:
HUDWidget에서 이름이 CrossHair_CanvasPanel인 위젯을 가져와 UCanvasPanel로 캐스팅.
해당 CanvasPanel의 Visibility를 Hidden으로 설정하여 숨김.

728x90
반응형

댓글