언리얼 ListView (12.09)

이정국(PBD)·2025년 12월 9일

TIL

목록 보기
67/69

1.스크롤 기능: 자동

2. 방이 많아지면 스크롤은? (자동 vs 수동)

  • 자동. (이게 UListView를 쓰는 가장 큰 이유)
  • VerticalBox를 사용했다면 스크롤 박스로 다시 감싸줘야 하지만,
    UListView는 애초에 그런 목적으로 탄생하여 그럴 필요가 없음.

3. 동작 방식

  • 3-1.방이 1개든 1,000개든, (리스트뷰 크기) 영역을 벗어날 만큼
    데이터가 많아지면 알아서 오른쪽에 스크롤바가 생기고 드래그가 가능함.

  • 3-2.”늘어난다” 는 표현보다는 "창문은 그대로 있고 내용물이 움직인다"가 정확함.
    지정된 영역만큼 크기는 고정되어 있고, 그 안에서 내용들만 위아래로 이동하는 방식

4.💡Point

UListView를 쓴 건 UI 가상화(UI Virtualization) 때문도 있음.

  • 일반 위젯 (ScrollBox + VerticalBox):
    방이 1,000개면, 눈에 안 보이는 방까지 위젯을 1,000개 다 생성해서 메모리에 올림.
    → 렉 걸림.

  • 리스트 뷰 (ListView):
    방이 1,000개여도, 화면에 딱 5개만 보인다면
    위젯을 5~6개만 만들어서 돌려막기(재활용) 함.
    ◦ 스크롤 내리면 위에 있던 위젯 내용을 지우고 아래쪽 데이터로 갈아 끼워서 보여줌.
    ◦ 그래서 방이 100만 개가 되어도 렉이 안 걸림.

5. 언리얼 UMG 상 주의사항

  • 5-1. Entry Widget Class 설정: SessionListView를 클릭하고 디테일 패널에서
    List Entry Widget Class 설정 지정 필요.
    WBP_RoomListEntryWidget (한 줄짜리 UI) 을 넣어줘야함.
    그래야 리스트뷰가 "아, 이 데이터를 보여줄 때 이 디자인을 쓰면 되는구나" 하고 그려줌.

  • 5-2. 크기 제한 (Size):
    ListView는 "내가 어디까지 보여줄지" 영역이 확실해야 스크롤바를 띄움.
    만약 Size To Content(내용에 맞춰 크기 조절) 같은 걸로 감싸버리면,
    리스트뷰가 무한히 늘어나버려서 스크롤바가 안 생길 수 있음.
    → 특정 구역 고정된 크기를 주거나,
    앵커(Anchors)를 이용해서 화면에 꽉 차게 잡아주는 게 좋음.

profile
창백한 푸른점 속 작은점

0개의 댓글