Unity | ๐ŸŒWorld Space, ๐Ÿ‘ถLocal Space

Cleanยท2025๋…„ 4์›” 20์ผ

Unity

๋ชฉ๋ก ๋ณด๊ธฐ
8/24

์œ ๋‹ˆํ‹ฐ์—์„œ ์˜ค๋ธŒ์ ํŠธ์˜ ์œ„์น˜์™€ ํšŒ์ „์—๋Š” ๋‘๊ฐ€์ง€ ์ขŒํ‘œ๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ,

๋ฐ”๋กœ ์›”๋“œ ์ŠคํŽ˜์ด์Šค (World Space) ์™€ ๋กœ์ปฌ ์ŠคํŽ˜์ด์Šค (Local Space)๋‹ค.


World Space

World Space๋Š” ์”ฌ์˜ ์ค‘์‹ฌ์ธ (0, 0, 0)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ ์ ˆ๋Œ€ ์ขŒํ‘œ๋‹ค.

์ฆ‰, ์”ฌ์—์„œ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์–ด๋””์— ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋Š” ์ขŒํ‘œ๋‹ค.

์˜ˆ๋กœ ๋“ค๋ฉด ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์˜ ์œ„์น˜๊ฐ€ (5, 3, 0) ์ด๋ฉด

์ด ์˜ค๋ธŒ์ ํŠธ๋Š” ์”ฌ์œผ๋กœ๋ถ€ํ„ฐ X๊ฐ€ 5, Y๊ฐ€ 3๋งŒํผ ๋–จ์–ด์ ธ ์žˆ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.


Local Space

Local Space๋Š” ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๋ถ€๋ชจ์˜ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ ์ƒ๋Œ€ ์ขŒํ‘œ๋‹ค.

์ฆ‰, ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์”ฌ ์ค‘์‹ฌ์œผ๋กœ์˜ ์œ„์น˜๊ฐ€ ์•„๋‹Œ ๋ถ€๋ชจ ์˜ค๋ธŒ์ ํŠธ๋กœ๋ถ€ํ„ฐ ๊ฑฐ๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

์˜ˆ๋กœ ๋“ค๋ฉด ๋ถ€๋ชจ ์˜ค๋ธŒ์ ํŠธ์˜ ์œ„์น˜๊ฐ€ (5, 3, 0) ์ผ ๋•Œ,

์ž์‹ ์˜ค๋ธŒ์ ํŠธ์˜ ์œ„์น˜๊ฐ€ (3, 2, 0) ์ด๋ฉด

์ž์‹ ์˜ค๋ธŒ์ ํŠธ๋Š” ๋ถ€๋ชจ ์˜ค๋ธŒ์ ํŠธ๋กœ๋ถ€ํ„ฐ X๊ฐ€ 3, Y๊ฐ€ 2๋งŒํผ ๋–จ์–ด์ ธ ์žˆ๊ณ ,

์ด๊ฒƒ์„ World Space ๊ธฐ์ค€์œผ๋กœ ๋ณธ๋‹ค๋ฉด (๋ถ€๋ชจ ์œ„์น˜ + ์ž์‹ ์œ„์น˜) = (8, 5, 0)์ด ๋œ๋‹ค.


position? localPosition?

์œ ๋‹ˆํ‹ฐ Transform ์ปดํฌ๋„ŒํŠธ์—๋Š” ์˜ค๋ธŒ์ ํŠธ์˜ ์›”๋“œ ์ŠคํŽ˜์ด์Šค์™€, ๋กœ์ปฌ ์ŠคํŽ˜์ด์Šค์— ๋Œ€ํ•œ

์œ„์น˜ (position / localPosition)์™€ ํšŒ์ „ (rotation / localRotation) ํ”„๋กœํผํ‹ฐ๋“ค์ด ์žˆ๋‹ค.

๊ทธ ์ค‘ position ๊ณผ localPosition์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.


ํ•˜์ด์–ด๋ผํ‚ค์ƒ์—์„œ Cube ์˜ค๋ธŒ์ ํŠธ์™€ ์ž์‹์œผ๋กœ Sphere ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ ,

๋ถ€๋ชจ์ธ Cube ์˜ค๋ธŒ์ ํŠธ ์œ„์น˜๋ฅผ (0, 5, 0)์œผ๋กœ ์˜ฎ๊ธฐ๊ณ ,

์ž์‹์ธ Sphere ์˜ค๋ธŒ์ ํŠธ ์œ„์น˜๋ฅผ (5, 0, 0)๋กœ ์˜ฎ๊ฒผ๋‹ค.

// Cube
void Update()
{
	Debug.Log($"๋ถ€๋ชจ์˜ ์›”๋“œ ์œ„์น˜๋Š”? {transform.position}");
	Debug.Log($"๋ถ€๋ชจ์˜ ๋กœ์ปฌ ์œ„์น˜๋Š”? {transform.localPosition}");
}

// Sphere
void Update()
{
	Debug.Log($"์ž์‹์˜ ์›”๋“œ ์œ„์น˜๋Š”? {transform.position}");
	Debug.Log($"์ž์‹์˜ ๋กœ์ปฌ ์œ„์น˜๋Š”? {transform.localPosition}");
}

๊ทธ๋ฆฌ๊ณ  ๋ถ€๋ชจ์™€ ์ž์‹ ์˜ค๋ธŒ์ ํŠธ์— ๊ฐ๊ฐ์˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋„ฃ๊ณ  ์‹คํ–‰ํ•˜๋ฉด

์ฝ˜์†”์— ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฐ’๋“ค์ด ์ถœ๋ ฅ๋œ๋‹ค.


๋ถ€๋ชจ ์˜ค๋ธŒ์ ํŠธ๋Š” ์ƒ์œ„์˜ ๋ถ€๋ชจ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์—

position๊ณผ localPosition์ด ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.

ํ•˜์ง€๋งŒ ์ž์‹ ์˜ค๋ธŒ์ ํŠธ์˜ localPosition์€ ์ธ์ŠคํŽ™ํ„ฐ์ฐฝ ๊ทธ๋Œ€๋กœ (5, 0, 0) ๊ฐ’์ด ๋‚˜์˜ค์ง€๋งŒ,

์›”๋“œ ์œ„์น˜์ธ position์€ ๋ถ€๋ชจ์˜ ์œ„์น˜์ธ (0, 5, 0)๋ฅผ ๋”ํ•ด (5, 5, 0) ๊ฐ’์ด ์ถœ๋ ฅ๋œ๋‹ค.

์ด๋Š” ์œ„์น˜(position) ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํšŒ์ „(rotate)์—๋„ ์ ์šฉ๋œ๋‹ค.


๋‹คํ–‰ํžˆ MSW Documents ์—์„œ ์›”๋“œ ์ขŒํ‘œ์™€ ์Šคํฌ๋ฆฐ ์ขŒํ‘œ๋ฅผ

์กฐ๊ธˆ์ด๋ผ๋„ ์•Œ๊ณ  ์žˆ์–ด์„œ ์ดํ•ดํ•˜๋Š”๋ฐ ์ˆ˜์›”ํ–ˆ๋‹ค

0๊ฐœ์˜ ๋Œ“๊ธ€