+ Animation
버튼 클릭.+ Add
버튼을 눌러서 위젯을 추가+
버튼을 클릭하면 해당 위젯에 애니메이션을 줄 수 있는 속성이 나옴.Transform
Color and Opacity
또는 Render Opacity
FUNCTIONS
에 애니메이션 재생 함수를 만들어줌.PlayAnimation
함수에 변수로 만들었던 애니메이션 변수를 넣어서 재생시킬 수 있음.SetVisibility
를 해준 이유는 강의에서 TextBlock
을 처음에는 Visibility
항목을 Hidden
으로 설정했기 때문.UFunction* PlayAnimFunc = MainMenuInst->FindFunction(FName("PlayGameOverAnim"));
if (PlayAnimFunc)
{
MainMenuWidgetInstance->ProcessEvent(PlayAnimFunc, nullptr);
}
UFunction* PlayAnimFunc = MainMenuInst->FindFunction(FName("PlayGameOverAnim"));
FindFunction(FName)
을 호출해서 이름 기반으로 함수를 찾음.UFunction*
UObject::ProcessEvent(UFunction*, void* Params)
UObject
(UE 객체들의 최상위 부모 클래스)에 내장된 ProcessEvent
호출UFunction*
함수 포인터와 이 함수에서 사용할 매개변수를 요구함.Widget Component
Widget Component
는 특정 UUserWidget(UMG BP 클래스)
을 3D 상에 표시하게 해줌.SetWidgetSpace(EWidgetSpace)
: 위젯의 월드 공간 유형을 설정할 수 있음.EWidgetSpace::World
월드 모드, 3D 공간 특정 지점에 3D 오브젝트처럼 띄워줌.EWidgetSpace::Screen
스크린 모드, 카메라에 띄워주어 따라다니듯 보여줌SetVisibility(false)
로 가려뒀다가 가까이 오면 SetVisibility(true)
로 켜줄 수도 있음.// Character.h
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI")
UWidgetComponent* OverheadWidget;
UWidgetComponent
에 원하는 WBP 클래스를 넣어줄 수 있음.// Character.cpp
// 생성자에서 초기화
OverheadWidget = CreateDefaultSubobject<UWidgetComponent>(TEXT("OverheadWidget"));
OverheadWidget->SetupAttachment(GetMesh());
OverheadWidget->SetWidgetSpace(EWidgetSpace::Screen);
Space
를 World
로 설정해서 위치를 잡아줄 것.UWidgetComponent
의 Transform
을 수정해서 반영해주면 됨PlayerController::SetPause(bool bIsPause)
PlayerController
에서 이 함수를 호출해서 게임을 일시 정지할 수 있음.