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("최근 순 정렬")));
}
'게임엔진 > Unreal' 카테고리의 다른 글
[Unreal] UI를 마우스 위치에 따라가게 하기 (0) | 2022.09.30 |
---|---|
[Unreal] 위젯 관련 함수 오버라이딩 (0) | 2022.09.28 |
[Unreal] 화면 정중앙 값 구하기 (0) | 2022.09.07 |
[Unreal] 플레이 누른 직후 또는 인벤토리 열 때 인게임 모드 설정 (0) | 2022.09.03 |
[Unreal] UI를 뷰포트 위치로 치환 및 이동하는 방법 (UI를 마우스의 위치로 또는 반대) (0) | 2022.09.02 |