Unity:: RectTransform 개념

2023. 7. 9. 23:24·개발/게임
반응형

개요

UI를 구성하는데 가장 중요한 점은 여러 해상도에 맞게 구성하는 것이다.
여러 해상도에 맡게 UI를 구성하는 방법을 알기 위해 이번 게시물에서 RectTransform의 기본을 알아가고
다음 게시물에서는 앵커를 활용해서 유연하게 해상도 대응을 하는 방법에 대해 알아보고자 한다.


RectTransform

유니티 공식 홈페이지

  • UI 요소를 안에 넣을 수 있는 사각형을 나타냄
  • Tranform 컴포넌트의 2D 레이아웃 버전 - Transform 컴포넌트를 상속받음
  • 상위 RectTransform을 이용해 상대적인 위치 및 크기를 지정할 수 있음

Property 이해

앵커(Anchor) / 피벗(Pivot)

  • 앵커(Anchor) : 부모 오브젝트의 기준점
    • 이미지의 바람개비 모양이 앵커를 나타낸다
    • Anchor의 Min, Max를 통해 비율을 정할 수 있음
  • 피벗(Pivot) : 자식 오브젝트의 기준점 (중심점)
    • 이미지의 파란 동그라미가 피봇을 나타낸다

Script Property

참고자료

더보기

https://bora-game-develop-history.tistory.com/1

 

[Unity/UI] RectTransform 정리

# anchoredPosition anchoredPosition은 Inspector에 나와있는 Position과 같다. anchor가 top/left 이면 anchoredPosition은 ( Screen.width / 2 , - Screen.height / 2)이 된다. 만약 ahchor가 bottom/left가 된다면? ahchorePosition은 ( Screen.w

bora-game-develop-history.tistory.com

https://planek.tistory.com/31

 

RectTransform 이해하기: rect, scale, anchoredPosition vs localPosition

RectTransform WorldSpace 좌표계로 가정한다. RectTransform canvas 값 panel 값 .position (WorldSpace) ㆍWorldSpace 상의 피벗 위치 (3, 2) ㆍWorldSpace 상의 피벗 위치 (5, 4) .position (ScreenSpace) ㆍScreenSpace 상의 피벗 위치 cf

planek.tistory.com

RectTransform 의미
.position (WorldSpace) WorldSpace 상의 피벗 위치
.localPosition 상위개체로부터 떨어진 피봇 위치
.anchoredPosition anchor를 기준으로 한 자신의 pivot 위치
인스펙터 상의 posX, posY
.sizeDelta anchor와의 거리 (부모보다 크기가 얼마나 작거나 큰지)

[anchor가 middle/center 일 때] : rect.size와 동일
[anchor가 stretch 일 때] :
sizeDelta.x = -Screen.width + rect.width
sizeDelta.y = -Screen.height + rect.height
.offsetMin / .offsetMax lower left anchor 기준 lower left corner 위치 / upper right anchor 기준 upper right corner 위치
.anchorMin / .anchorMax normalized 된 offsetMin / Max

Rect

  • x, y 위치와 넓이, 높이로 정의되는 2차원 사각형 영역
  • UI의 가로, 세로 정보 등을 알아낼 수 있음
  • x는 오른쪽 / y는 아래가 양의 방향(+)
RectTransform 의미
.rect.position 피벗으로부터 왼쪽 하단 모서리까지의 거리
.rect.width 가로축 좌표를 구성하는 수 (객체의 넓이 : 픽셀)
.rect.height 세로축 좌표를 구성하는 수 (객체의 높이 : 픽셀)
.rect.xMin / .rect.xMax pivot을 기준으로 한 x 좌표의 최소/최대 값
.rect.yMin / .rect.yMax pivot을 기준으로 한 y 좌표의 최소/최대 값

예시

  • 2D 기준으로 표기
.position (WorldSpace)   (0, 0)   (50, 50)
.rect.position   (-100, -100)   (-50, -50)
.anchoredPosition   (0, 0)   (50, 50)
.localPosition   (0, 0)   (50, 50)
.rect.width   200   100
.rect.height   200   100

결과 사진


Anchor Presets

Anchor Preset GUI를 통해 Anchor를 지정할 수 있음

단축키 기능

Anchor + Pivot 설정 Anchor + Position 설정

Shift + Alt를 동시에 눌러 Anchor + Pivot + Position을 동시에 설정할 수 있다.


더보기

유용한 명령어

Unity 오브젝트 Size 얻기

RectTransform.rect.width
RectTransform.rect.height
반응형

'개발 > 게임' 카테고리의 다른 글

Unity:: TDD / Unity Test Framework (업무 회고)  (0) 2023.08.27
Unity:: ScrollRect의 개념 & 동적 정렬  (0) 2023.08.06
Unity:: Layout Group & Layout Element  (0) 2023.07.23
Unity:: UI 해상도 대응  (0) 2023.07.16
Unity:: 개발일지 230210 캐릭터 움직임 / 마우스 입력  (1) 2023.02.10
'개발/게임' 카테고리의 다른 글
  • Unity:: ScrollRect의 개념 & 동적 정렬
  • Unity:: Layout Group & Layout Element
  • Unity:: UI 해상도 대응
  • Unity:: 개발일지 230210 캐릭터 움직임 / 마우스 입력
나귀당
나귀당
게임 클라이언트 개발자의 개인 블로그 (기술, 개발일지, 성찰)
  • 나귀당
    나귀라 카더라
    나귀당
    • 분류 전체보기 (169)
      • 개발 (26)
        • 게임 (9)
        • 서브 (9)
        • 기타 (8)
      • Computer Science (20)
        • 머신러닝 (5)
        • 정보보안 (6)
        • 컴퓨터비전 (8)
        • 컴퓨터그래픽스 (1)
      • Problem Solving (52)
        • 이론 (17)
        • 문제풀이 (32)
        • 기타 (3)
      • 개인 (56)
        • Careers (1)
        • 회고+계획 (34)
        • 후기 (14)
        • 좌충우돌 (2)
        • 독서 (5)
      • 학교 (업뎃X) (15)
        • 과제 (2)
        • 수업관련 (9)
  • 반응형
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
나귀당
Unity:: RectTransform 개념
상단으로

티스토리툴바