Anchor

jkjkbk·2023년 10월 9일
0

Unity

목록 보기
16/16

1. Anchor를 범위로 할 때

1) 부모 UI의 영역에서 Anchor로 설정한 구역의 크기가 달라지면 자식의 크기도 그에 비례하게 조절할 수 있음.

2) Anchor의 x가 범위라면 자식의 RectTransform.sizeDelta에서 x 값은 보이는 것보다 
작은 값이거나 음수이거나 0일 수 있음. 
	-> Anchor left-right를 기준으로 하기 때문에 left와 right의 사이에 
    	영역이 있지 않다면 보이는 것과 다른 값을 가질 수 있음

2. Anchor를 범위로 하지 않을 때

1) 부모 UI의 크기가 달라져도 Anchor에 대한 상대 좌표와 요소의 크기가 고정적임

2) x, y에서 Min, Max가 같아서 겹쳐진 경우.
예를 들어 Anchor의 x의 Min과 Max가 같아서 겹쳐진 경우
이 요소의 anchor left-right지점에 대한 요소의 상대좌표의 x 값과 width값을 스크립트로 조절 할 수 있게 됨

3) Anchor의 x가 하나의 값이라면 자식의 RectTransform.sizeDelta에서 x 값은 보이는 대로의 값.

3. 결론

  • 범위라면 부모 요소의 크기가 달라졌을 때, 스크립트로 제어하지 않아도 유니티가 알아서 계산하여 요소의 크기나 위치가 자동으로 변경 됨 -> 자동으로 계산 되기 때문에 스크립트로 변경할 수 없기도 하지만 스크립트로 제어할 필요가 없음. (Anchor 범위가 부모 요소 안에 있어야 제대로 적용됨. 그렇지 않다면 크기는 제대로 조절되지만 요소의 위치가 제대로 조정되지 않음). 하지만 자동으로 조절되기에 요소의 비율이 의도한 대로 안 될 수 있음. Anchor의 영역을 따라가기에 최소한 지켰으면하는 비율이나 크기를 지킬 수 없음.

  • 범위가 아니라면, 만약 Anchor의 x가 Min과 Max가 같다면 요소의 Anchor의 left-right지점에 대한 상대 좌표 Pos X값과 요소의 width를 스크립트로 제어할 수 있게 됨 -> 부모 UI의 크기가 변경되었을 때 유니티가 알아서 해주지 않기 때문에 부모의 UI가 변경되어도 고정적임. 따라서 스크립트로 제어할 수도 있기도 하지만 제어를 꼭 해야 UI의 배치가 망가지지 않음. 스크립트로 제어하기 때문에 개발자가 의도한 비율을 적용할 수 있음.

0개의 댓글