UListView

myeongrangcoding·2024년 3월 3일

언리얼 5

목록 보기
6/6

https://docs.unrealengine.com/4.26/en-US/API/Runtime/UMG/Components/UListView/

https://jhtop0419.tistory.com/12

https://husk321.tistory.com/423

인벤토리를 만드는 예시를 참고하면 이해가 빠르다.
List View UI를 위해서는 리스트 UMG와 목록 안에 항목들을 표현할 UMG가 필요하다. 그리고 항목들의 데이터를 가지고 있을 UObject 타입의 클래스가 필요하다.

목록 안에 항목들을 표현할 UMG 클래스는 IUserObjectListEntry라는 인터페이스를 상속해야 한다. 이 인터페이스를 받은 클래스만이 List View에 들어갈 수 있다.

IUserObjectListEntry::NativeOnListItemObjectSet

  • 해당 항목이 Set될 때 불린다.
void UMyEntryWidget::NativeOnListItemObjectSet(UObject* ListItemObject)
{
	IUserObjectListEntry::NativeOnListItemObjectSet(ListItemObject);
	const AMyListItemObject* MyListItemObject = Cast<AMyListItemObject>(ListItemObject);
	if(MyListItemObject == nullptr)	return;

	ListItemObjectName->SetText(FText::FromString(MyListItemObject->GetListItemObjectName()));
}

  • List View에 들어가는 각 항목은 IUserObejctListEntry를 상속받은 클래스여야 한다.
  • IUserObjectListEntry의 NativeOnListItemObjectSet 함수는 이 항목이 Set 될 때의 행동을 정의한다.(override 가능.)
  • List View는 TArray<TObjectPtr> 로 이루어져 있다.
profile
명랑코딩!

0개의 댓글