게임엔진/Unreal
[Unreal] UI 마우스 관한 동작 이벤트 설정방법
ShovelingLife
2022. 9. 8. 16:39
UI내 버튼이다.
총 5개의 이벤트가 존재하는데
- On Clicked : 클릭할 시
- On Pressed : 클릭한 후 지속적으로 누르고 있을 시
- On Released : 클릭 후 뗐을 시
- On Hovered : 마우스가 UI 범위 안에 들어왔을 시
- On Unhovered : 마우스가 UI 범위 안에 들어온 후 벗어날 시
이벤트 그래프에서 각각의 함수들의 원형을 봤더니 리턴형 void에 파라미터 void이다. 즉 void 함수이름()
C++로 구현하고자 하는데 각각 해당되는 동작 클래스 변수로 되어있다.
각 클래스 원형들을 봤더니 아예 빈 껍데기이다 그래서 동적으로 바인딩하면 어떨까해서 해봤다.
클릭 이벤트 클래스 변수에 할당 해줬다.
void UInventoryListUI::InitButtons()
{
BtnOrderAlphabet->SetClickMethod(EButtonClickMethod::MouseDown);
BtnOrderAlphabet->OnClicked.AddDynamic(this, &UInventoryListUI::OrderAlphabetically);
BtnOrderRecent->SetClickMethod(EButtonClickMethod::MouseDown);
BtnOrderRecent->OnClicked.AddDynamic(this, &UInventoryListUI::OrderRecently);
}
UFUNCTION() void UInventoryListUI::OrderAlphabetically()
{
GEngine->AddOnScreenDebugMessage(0, 1.f, FColor::Red, FString::Printf(TEXT("사전 순 정렬")));
}
UFUNCTION() void UInventoryListUI::OrderRecently()
{
GEngine->AddOnScreenDebugMessage(1, 1.f, FColor::Cyan, FString::Printf(TEXT("최근 순 정렬")));
}