์์ ๊ฐ์ด ์ฌ๊ณผ Image์ Anchor๊ฐ Text์ ์์์ด๋ฉด์ ์ผ์ชฝ ๋์ ๋ฐฐ์น๋์ด ์๋ ๊ฒฝ์ฐ, ์ธ์คํํฐ๋ฅผ Normal ๋ชจ๋๋ก ๋ดค์ ๋๋ ์๋์ ๊ฐ์ด Pos X๋ Image๊ฐ Anchor๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ์ ์์ผ๋ฏ๋ก -2.999985๋ก ํ์๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ธ์คํํฐ๋ฅผ Debug ๋ชจ๋๋ก ๋ฐ๊พธ๋ฉด Local Position์ -82.34499๋ก ์์ดํ๋ฉฐ, Anchored Position์ด Normal ๋ชจ๋์์ Pos X ๊ฐ์ผ๋ก ํ์๋์์์ ํ์ธํ ์ ์๋ค. Local Position์ ๋ถ๋ชจ์ธ Text์ Pivot ๊ฐ์ ๊ธฐ์ค์ผ๋ก, ๋ถ๋ชจ์ Pivot ์์น์์๋ถํฐ ๋์ Pivot ์์น ๊ฐ์ ์ฐจ์ด์ด๋ค. ๊ทธ๋์ ๋ถ๋ชจ์ Pivot์ ๋ฐ๊พธ๊ฑฐ๋ ๋์ Pivot์ ๋ฐ๊พธ๋ฉด ๊ฐ์ด ๋ฌ๋ผ์ง๋ค. Anchored Position์ ๋์ Anchor ์์น๋ก๋ถํฐ ๋์ Pivot ์์น ๊ฐ์ ์ฐจ์ด์ด๋ค.
Pivot
- Pivot์ Default ๊ฐ์ 0.5, 0.5์ด๊ณ ์ผ์ชฝ ์๋๊ฐ 0, 0, ์ค๋ฅธ์ชฝ ์๊ฐ 1, 1์ด๋ค.
rect
- Local Transform ๊ธฐ์ค ์ฌ๊ฐํ ๋ฒ์
GetWorldCorners
- RectTransform.GetWorldCorners(Vector3[] fourCornersArray) ๋ก Local ๊ณต๊ฐ ๊ธฐ์ค์ด๋ rect๋ฅผ World ๊ณต๊ฐ ๊ธฐ์ค์ผ๋ก ๋ณํ ๊ฐ๋ฅ
- Vector3๊ฐ ๋ค ๊ฐ ์๋ ๋ฐฐ์ด์ ๋ฃ์ผ๋ฉด 0, 1, 2, 3๋ฒ์งธ ์์๊ฐ ์๊ณ ๋ฐฉํฅ์ผ๋ก ๊ฐ๊ฐ ์ผ์ชฝ ์๋, ์ผ์ชฝ ์, ์ค๋ฅธ์ชฝ ์, ์ค๋ฅธ์ชฝ ์๋ ๊ผญ์ง์ ์ World ๊ณต๊ฐ ์์ ์ขํ๋ก ๋ฐ๊พธ์ด์ค
- ํ์ง๋ง ๋น Vector3 ๋ฐฐ์ด์ ๋ฃ๊ณ ๋ฉ์๋๋ฅผ ๊ฑฐ์น๋ฉด ๋ฐฐ์ด์ด ๋ณํ๋๋ ๋ฐฉ์์ธ๋ฐ๋ค rect์ Center๋ผ๋ ๊ตฌํ๋ ค๊ณ ํ๋ฉด array[0].x - array[3].x ์ด๋ ๊ฒ ํด์ผ ํ๋ฏ๋ก ์๋ ์ฐธ์กฐ ๊ธ์ฒ๋ผ bounds๋ก ๋๋ ค๋ฐ๋ ๋ฉ์๋๋ฅผ ๋ง๋ค๋ฉด ํธ๋ฆฌ
private static Vector3[] WorldCorners = new Vector3[4];
public static Bounds GetRectTransformBounds(RectTransform transform)
{
transform.GetWorldCorners(WorldCorners);
Bounds bounds = new Bounds(WorldCorners[0], Vector3.zero);
for (int i = 1; i < 4; ++i)
{
bounds.Encapsulate(WorldCorners[i]);
}
return bounds;
}
- ์ฐธ์กฐ: https://answers.unity.com/questions/1013011/convert-recttransform-rect-to-screen-space.html
Convert RectTransform rect to screen space - Unity Answers
answers.unity.com
Local Position
- ๋์ Pivot - ๋ถ๋ชจ์ Pivot ์์น
Anchored Position
- ๋์ Pivot ์์น - ๋์ Anchor ์์น
- Anchor๊ฐ ๋ง์ฝ Stretch ์ํ๋ผ๋ฉด Anchor์ ๊ธธ์ด์ Pivot์ ๋น์จ์ด ๊ณฑํด์ง ์์น: ์์ธํ ๋ด์ฉ์ ์๋ ์ฐธ์กฐ
transform.position
- WorldPosition์์์ Pivot ์์น
- RectTransform ์ปดํฌ๋ํธ๊ฐ ๋ถ์ฐฉ๋ ์ค๋ธ์ ํธ๋ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋จ
(transform.position
==(transform as RectTransform).position
)
Size Delta
- Anchor ๊ธฐ์ค Rect์ ์ฌ์ด์ฆ(Anchor๋ก๋ถํฐ Rect์ ๊ฑฐ๋ฆฌ)
- Anchor๋ก๋ถํฐ์ ๊ฒฐ๊ณผ์ ์ธ ์ฌ์ด์ฆ ์ฐจ์ด ๊ฐ๋ง ์ ์ ์์
- Anchor๋ก๋ถํฐ ์ผ์ชฝ์์ -100, ์ค๋ฅธ์ชฝ์์ +100๋งํผ ์์นํด ์๋ค๋ฉด Size Delta์ x ๊ฐ์ Abs((-100) + (+100)) = 0์ด ๋จ
- ๊ทธ๋ ๋ฏ, Size Delta๊ฐ 0, 0์ด๋ผ๊ณ ํ๋ฉด Rect์ ๋ค ๊ผญ์ง์ ์ด Anchor์ ๋ฐ๋์ ์ผ์นํ๋ ๊ฒ์ ์๋๋ ์ฌ์ด์ฆ๋ ๊ฐ์ ๊ฒ(Anchor์ ๋ค ๊ทํ์ด๋ก๋ถํฐ Rect๊น์ง์ ๊ฑฐ๋ฆฌ)
- ํ์ง๋ง Stretch๋ ์ํ๊ฐ ์๋๋ผ๋ฉด ๊ทธ๋ฅ Rect์ Size ๊ฐ
Anchored Position, Anchor์ Pivot์ ๊ด๊ณ
- Anchor์ min X~max X, min Y~max Y์ ๊ฑฐ๋ฆฌ์ Pivot์ ๋น์จ๋ก ๊ณฑํ ๊ฒ๊ณผ Pivot ๊ฐ์ ๊ฐ๊ฒฉ์ด Anchored Position์ด ๋จ
'Unity' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฝ๋ฃจํด ์คํ ์ค์ธ์ง ์ฒดํฌํ๊ธฐ (0) | 2022.12.31 |
---|---|
๋ฉ์๋ ์ ์ ์ ๊ณ ๋ คํ ์ (0) | 2022.12.28 |
๋ฌดํ ์คํฌ๋กค๋ง ๋ฐฐ๊ฒฝ ๋ฒ์ด์ง๋ ๋ฌธ์ (0) | 2022.12.04 |
PlayerPrefs (0) | 2022.10.30 |
๋ผ๋์(radian), ์ผ๊ฐํจ์(Sin, Cos, Atan2) (0) | 2022.10.14 |
๋๊ธ