[Unity] 레이아웃

Learning 

When: 1학년 6월 5일

 

How:

학교에서 체력을 표시해 주는 UI를 만드는 것을 배웠는데, 거기서 게임 오브젝트를 정렬해 주는 레이아웃이 궁금해져 공부하게 되었습니다.

 

Understanding:

일단 레이아웃은 부모 오브젝트에 컴포넌트로 추가하면 그 자식 오브젝트가 규칙에 맞게 정렬됩니다. 남은 생명의 수나 총알 같은 일정 간격, 규칙으로 정렬되어야 하는 UI에 많이 쓰입니다. 레이아웃에는 Horizontal Layout, Vertical Layout, Grid Layout Group이 있습니다.

Horizontal Layout

  • Padding: 여기저기서 많이 쓰이는 속성이고, 알다시피 처음 위치에서 오브젝트를 얼마나 옮길 것인지에 대한 설정입니다.
  • Spacing: 자식과 자식 사이에 간격을 뜻합니다.

  • Child Alignment: 정렬 방향입니다. Upper Right면 오른쪽 위에서부터 정렬됩니다.

  • Reverse Arrangemen: 자식의 정렬 순서를 바꿉니다. 원래는 끝에서 생성되지만, 이것을 키면 원래 있던 자식 오브젝트들을 옆으로 밀어서 공간을 만들어 거기에 배치됩니다.

  • Control Child Size: 자식의 길이, 높이를 조정할 수 있습니다.

  • Use Child Scale: 자식의 Scale에 맞게 차지하는 공간을 조정할지 결정합니다. (작은 버튼 사이에 커다란 버튼이 있는데 이게 없으면 작은 버튼이랑 커다란 버튼이랑 겹칩니다.)

  • Child Force Expand: 자식이 남는 공간이 있으면 전부 차지하며 커지게 하는 설정입니다. (Control Child Size와 같이 사용됩니다.)

Vertical Layout

Vertical은 속성은 Horizontal과 똑같고, 세로 방향으로 오브젝트가 쌓인다는 것만 알면 됩니다.

Grid Layout Group

Grid Layout Group은 부모 오브젝트 안에 셀이 있다는 것만 이해하시면 쉽습니다.

  • Padding: 똑같이 오브젝트의 원래 위치에서 얼마나 이동시킬지 설정합니다.
  • Cell Size: 셀의 크기를 정합니다.
  • Spacing: 똑같이 셀의 간격을 뜻합니다.
  • Start Corner: 어느 모서리에서부터 시작할지 결정합니다.
  • Start Axis: 어느 방향으로 채울지 정합니다. (Horizontal은 열을 다 채우면 다음 행으로{가로로}, Vertical은 행을 다 채우면 다음 열로{세로로})
  • Child Alignment: 셀 안에서 자식이 어디에 붙을지 설정합니다.
  • Constraint: 셀의 행렬을 조정합니다.
Flexible: 자동 조정 Fixed Column Count: 열 개수를 고정, 행 수는 자동으로 계산 Fixed Row Count: 행 수를 고정, 열은 자동

 

Result: 레이아웃이라는 좋은 UI 도구가 있으니 잘 활용하시길 바랍니다.