본문 바로가기
개발/Unity

Unity) UGUI RectTransform (사각 트랜스 폼)

by 테샤르 2020. 5. 3.

UGUI RectTransform (사각 트랜스 폼)

유니티 Canvas에서는 RectTransform이라는 컴포넌트를 지원한다.

GUI에서 위치 포지션을 설정하는 기본적인 컴포넌트로 UI에 대한 작업을 지원한다.

기본적으로 Canvas의 하위에 있는 UI에 포함되는 항목에 자동으로 붙으면

LocalPosition을 사용한 값으로 인스펙트의 값이 변경된다.

반응형

RectTransform은 GUI에 사용되지만 다른 용도로도 사용할 수 있다.

 사각형의 위치, 크기 및 고정을 저장하고 조작하는 데 사용되며

상위(부모) RectTransform을 기반으로 다양한 스케일링 형식을 지원한다.

  Alt 단축키 (Also Set Position) Shift 단춬키 (Also Set Pivot)
 

< Inspector 속성 설명 >

속성 설명
Pos (X, Y, Z) 앵커를 기준으로 한 사각형의 피벗 포인트 포지션입니다. 피벗 포인트 주변으로 사각형이 회전합니다.
Width/Height 직사각형의 너비와 높이입니다.
Left, Top, Right, Bottom 앵커를 기준으로 한 사각형 에지의 상대적인 포지션으로, 앵커에 의해 정의되는 사각형 안의 패딩이라고 생각할 수 있습니다. 앵커가 분리된 경우에 Pos  Width/Height 대신 표시됩니다(아래 참조). 이 옵션에 액세스하려면 RectTransform 컴포넌트 왼쪽 상단에 있는 Anchor Presets 상자를 클릭하십시오.
Anchors
사각형 왼쪽 하단 모서리와 오른쪽 상단 모서리의 앵커 포인트입니다.
Pivot 피벗 포인트 주위로 사각형이 회전하며, 사각형 자체 크기의 일부로 정의됩니다. 0,0은 왼쪽 하단 모서리에 해당하고 1,1은 오른쪽 상단 모서리에 해당합니다.
Rotation X, Y 및 Z 축을 따라 피벗 포인트를 중심으로 회전하는 오브젝트의 회전 각도(˚ 단위)입니다.
Scale X, Y 및 Z 차원에서 오브젝트에 적용되는 스케일 팩터입니다.
Blueprint Mode 회전되고 스케일되지 않는 것처럼 RectTransform을 편집합니다. 이 경우 스내핑도 활성화됩니다.
Raw Edit Mode 활성화된 경우 피벗 및 앵커 값을 편집하면 사각형이 한 자리에 머무르도록 사각형의 포지션과 크기를 반대로 조정하지 않습니다.

 

 

Unity doc : [링크]

 

Unity - 스크립팅 API: RectTransform

RectTransforms are used for GUI but can also be used for other things. It's used to store and manipulate the position, size, and anchoring of a rectangle and supports various forms of scaling based on a parent RectTransform.

docs.unity3d.com

 

RectTransform에서는 World Position이 아닌 Canvas 기반 위치 포지션으로 재설정된다.

RectTransform의 컴포넌트 안에 해당 좌표가 포함되는지에 대한 여부는 다음과 같다.

   if (true == RectTransformUtility.RectangleContainsScreenPoint(this.m_RectTransformBack, returnValue, Camera.main))
   {
   		//포함
   }

터치 좌표를 UI 좌표로 변환하는 코드이다.

화면 공간 점을 사각형 평면에 있는 RectTransform의 로컬 공간 위치로 변환한다.

Vector2 localPos = Vector2.zero;
RectTransformUtility.ScreenPointToLocalPointInRectangle(this.m_TransformRoot, this.m_vTouchPosition, Camera.main, out localPos);

 

월드 좌표로 RectTransform의 좌표를 변환하는 코드이다.

RectTransformUtility.WorldToScreenPoint(null, from.position);

 

UGUI를 작업하다 보니 자주 쓰이는 코드들이다.

해당 RectTransform에 대한 개념을 조금 알고 작업하는 것이 좋다.

 

Unity Recttransform : [링크]

 

사각 트랜스폼 - Unity 매뉴얼

Rect Transform 컴포넌트는 Transform 컴포넌트의 2D 레이아웃 버전입니다. 트랜스폼은 포인트 하나를 나타내지만, Rect Transform은 UI 요소를 안에 넣을 수 있는 사각형을 나타냅니다. 사각 트랜스폼의 상

docs.unity3d.com

 

 

 

반응형

댓글