▣ .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으로 설정하여 숨김.
'[ Unreal5 ] > - 언리얼엔진5 실습' 카테고리의 다른 글
언리얼엔진5 c++ GetMapName UEDPIE_0_ 제거 (0) | 2025.01.23 |
---|---|
언리얼엔진5 c++ ActorName Find 문자제거 (0) | 2025.01.22 |
언리얼엔진5 Pain Causing Volume (함정, 불, 발판 데미지 볼륨) (0) | 2025.01.13 |
언리얼엔진5 Blueprint Camera Zoom (0) | 2025.01.11 |
언리얼엔진5 일정 시간 후 호출함수 (0) | 2024.12.20 |
댓글