[UNTIY]Unity ScrollView 정복하기 – 콘텐츠가 자동으로 늘어나는 구조 만들기

Unity에서 ScrollView를 사용할 때, 콘텐츠(Content)의 자식 오브젝트가 늘어날 때마다 자동으로 Content의 사이즈가 늘어나도록 하려면 다음과 같은 설정과 구성을 해야 합니다.

 

Vertical Layout Group 또는 Horizontal Layout Group, Content Size Fitter 컴포넌트를 함께 사용하여 구현합니다.

 

 Content 오브젝트 설정

(1) Vertical Layout Group 또는 Horizontal Layout Group 추가

  • 콘텐츠가 세로로 늘어날 경우: Vertical Layout Group
  • 콘텐츠가 가로로 늘어날 경우: Horizontal Layout Group

(2) Content Size Fitter 추가

  • Horizontal Fit: Unconstrained
  • Vertical Fit: Preferred Size

 

이렇게 하면 자식 오브젝트의 수와 크기에 따라 Content의 사이즈가 자동 조정됩니다.

✅ 코드로 오브젝트 추가하는 경우 예시

public GameObject itemPrefab;
public Transform contentTransform;

public void AddItem()
{
    GameObject newItem = Instantiate(itemPrefab, contentTransform);
    newItem.GetComponentInChildren<Text>().text = "New Item";
}
  • itemPrefab은 ScrollView Content 아래에 추가될 UI 요소(Prefab)
  • Content 오브젝트는 위 설정처럼 Vertical Layout Group과 Content Size Fitter가 붙어 있어야 함

⚠️ 주의사항

  • Layout Group과 Content Size Fitter는 동시에 사용하지 않으면 자동 크기 조절이 되지 않습니다.
  • Content Size Fitter는 LayoutElement와 충돌할 수 있으므로, 특정 요소 크기를 수동으로 조절할 경우 주의하세요.
  • Layout Group이 설정된 상태에서 자식 UI 요소의 크기가 자동으로 조정되도록 LayoutElement를 쓰는 것도 유용할 수 있습니다.