Unity UI에는 스크롤뷰(ScrollView)가 있습니다.
콘텐츠에는 Content를 넣어주면 됩니다.
가로, 세로는 그 말 그대로 가로로 스크롤을 가능하게 할 것인지, 세로로 스크롤을 가능하게 할 것인지 정하는 옵션입니다.
이동 타입
제한 없음
은 그 말 그대로 제한이 없이 무한정으로 늘어나고 이동할 수 있습니다.
탄성 있음
은 내가 설정한 범위를 넘어나면 탄력이 있게 돌아오는 것 입니다.
고정됨
은 그냥 화면 범위가 고정되어 있어서 늘어나는 거없이 스크롤 밖으로 나가지 못하게 완전히 제한합니다.
관성은 스크롤 했을 때 천천히 감속되는지 설정하는 옵션입니다.
스크롤 감도는 스크롤 감도를 조절하여 화면을 내리거나 올릴시의 속도를 조절합니다(높을수록 빠릅니다.)
뷰포트는 스크롤 뷰에서 보이는 화면을 설정합니다.
스크롤 바는 우리가 가로 세로 방향으로 스크롤 할 때 어느정도 진행되었는지 보여주는 스크롤 바를 넣어주면 됩니다.
가시성은 영구적
, 자동 숨기기
, 자동 숨기기 및 뷰포트 확장
으로 이루어져 있습니다.
내가 사용할 옵션에 맞게 View포트를 설정 합니다.
(잘 모르겠으면 가로 세로부분만 설정해주시면 됩니다.)
Content에 내가 맞는 조건의 Layout Group을 넣고 Content Size Fitter를 넣기
Layout은 내가 격자형을 쓴다하면 Grid를.. 세로방향으로 스크롤 한다 Vertical.. 가로방향으로 스크롤 한다 Horizontal를 사용하면 됩니다.
Content Size Fitter은 안에 들어있는 객체의 크기에 맞게 유동적으로 크기를 조절할 수 있습니다.
세로형 스크롤 뷰의 예시
이렇게 좋고 많이 사용되는 스크롤 뷰에 큰 단점이 있습니다. 안에 들어가는 객체가 많아지면 큰 렉이 걸려 프레임 드랍이 심해집니다.
이를 해결하기 위해서는 ObjectPool를 사용하던가 아니면 무한 반복(여기서 무한반복은 마지막 값을 넘을시 초기 값으로 전환되는 것을 말합니다.)을 구현한 재사용 스크롤 뷰를 사용해야 됩니다.
사이트
에셋스토어 무료 재사용 스크롤 뷰
github에 올라온 코드1
github에 올라온 코드2
별도 - UI확장 github