Unity์˜ ๊ณ„์ธต ๊ตฌ์กฐ ํƒ์ƒ‰๊ณผ Transform ์‚ฌ์šฉ ์ด์œ 

๊ฒฐ๋ก 

Unity์—์„œ ์ž์‹ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ํƒ์ƒ‰ํ•  ๋•Œ๋Š” GameObject๊ฐ€ ์•„๋‹Œ Transform์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

๊ทธ ์ด์œ ๋Š” Unity์˜ ๊ณ„์ธต ๊ตฌ์กฐ๊ฐ€ Transform์„ ๊ธฐ์ค€์œผ๋กœ ๊ตฌ์„ฑ๋˜๊ณ , Transform์€ Unity C++ ์—”์ง„์˜ ํ•ต์‹ฌ ๊ณ„์ธต ์ •๋ณด์™€ ์—ฐ๊ฒฐ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


๐Ÿ” ๊ทผ๊ฑฐ 1: Unity ๊ณ„์ธต ๊ตฌ์กฐ๋Š” Transform์ด ๋‹ด๋‹นํ•œ๋‹ค

Unity์˜ ์˜ค๋ธŒ์ ํŠธ๋“ค์€ ๋ถ€๋ชจ-์ž์‹ ๊ตฌ์กฐ๋กœ ์—ฐ๊ฒฐ๋œ ํŠธ๋ฆฌ(Tree)๋ฅผ ์ด๋ฃฌ๋‹ค.
์ด ๊ตฌ์กฐ๋Š” GameObject๊ฐ€ ์•„๋‹Œ Transform ์ปดํฌ๋„ŒํŠธ์— ์˜ํ•ด ํ˜•์„ฑ๋œ๋‹ค.

  • ๋ชจ๋“  GameObject๋Š” ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜์˜ Transform์„ ํฌํ•จํ•œ๋‹ค.
  • ์ž์‹ ์˜ค๋ธŒ์ ํŠธ๋“ค์€ Transform์˜ ์ž์‹ ๋ชฉ๋ก์— ๋“ค์–ด๊ฐ„๋‹ค.
  • ์œ„์น˜, ํšŒ์ „, ์Šค์ผ€์ผ ์™ธ์—๋„ ๊ณ„์ธต ๊ตฌ์กฐ๊นŒ์ง€ ๊ด€๋ฆฌํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ๊ณ„์ธต ํƒ์ƒ‰์€ Transform์„ ํ†ตํ•ด์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.


๐Ÿ” ๊ทผ๊ฑฐ 2: Transform์€ ๊ณ„์ธต ํƒ์ƒ‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค

Transform์€ ์ž์‹ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

  • transform.GetChild(i)๋กœ i๋ฒˆ์งธ ์ž์‹ ์ ‘๊ทผ
  • transform.childCount๋กœ ์ž์‹ ์ˆ˜ ํ™•์ธ
  • GetComponentsInChildren<T>()๋กœ ์žฌ๊ท€ ํƒ์ƒ‰ ๊ฐ€๋Šฅ

์ด ๊ธฐ๋Šฅ๋“ค์€ GameObject ์ž์ฒด๊ฐ€ ์•„๋‹Œ
Transform์—๋งŒ ์กด์žฌํ•œ๋‹ค.


๐Ÿ” ๊ทผ๊ฑฐ 3: Transform์€ ๋‹จ์ˆœ ์œ„์น˜ ์ •๋ณด๊ฐ€ ์•„๋‹Œ ๊ณ„์ธต ๊ตฌ์กฐ์˜ ํ•ต์‹ฌ์ด๋‹ค

๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์€ Transform์ด ๋‹จ์ˆœํžˆ
์œ„์น˜, ํšŒ์ „, ํฌ๊ธฐ ์ •๋ณด๋ฅผ ๋‹ด๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” Unity ์—”์ง„์—์„œ ๊ณ„์ธต ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๋Š” ํ•ต์‹ฌ ์ปดํฌ๋„ŒํŠธ์ด๋‹ค.

  • ๋ถ€๋ชจ ์˜ค๋ธŒ์ ํŠธ์˜ ์œ„์น˜๊ฐ€ ๋ฐ”๋€Œ๋ฉด
    ์ž์‹ ์˜ค๋ธŒ์ ํŠธ๋„ ํ•จ๊ป˜ ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค.
  • ์ด๋Š” ์˜ค๋ธŒ์ ํŠธ๋“ค์ด Transform ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ
    ๊ฐ•ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

Transform์œผ๋กœ ์ž์‹ ํƒ์ƒ‰ํ•˜๊ธฐ

์ž์‹ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ฐพ์„ ๋•Œ๋Š” Transform์„ ์‚ฌ์šฉํ•œ๋‹ค:

// i๋ฒˆ์งธ ์ž์‹ ๊ฐ€์ ธ์˜ค๊ธฐ
Transform child = transform.GetChild(i);

// ์ž์‹ ์ˆ˜ ํ™•์ธ
int count = transform.childCount;

// ๋ชจ๋“  ์ž์‹ ์ปดํฌ๋„ŒํŠธ ์ฐพ๊ธฐ
Component[] components = transform.GetComponentsInChildren<Component>();

GameObject์—๋Š” ์ด๋Ÿฐ ๊ธฐ๋Šฅ์ด ์—†๊ณ , Transform์—๋งŒ ์žˆ๋‹ค.