Unity. GetComponent ์‚ฌ์šฉํ•˜๊ธฐ

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

๐ŸŒŸ GetComponent๋ž€

ํ•ด๋‹น GameObject์— ์†ํ•ด ์žˆ๋Š” Component๋ฅผ ํ•˜๋‚˜ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ํ•จ์ˆ˜!

public GameObject sample;
private void Awake()
{
	Image sampleImg = sample.GetComponent<Image>(); //sample ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์—์„œ Image Component ์ถ”์ถœ
}

public์œผ๋กœ ๋“ฑ๋กํ•œ ์˜ค๋ธŒ์ ํŠธ์—์„œ GetComponent๋กœ ์ ‘๊ทผํ•˜์—ฌ ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ์˜ Component๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

private void Awake()
{
	Image thisImg = GetComponent<Image>(); //๋ณธ ์˜ค๋ธŒ์ ํŠธ์—์„œ Image Component ์ถ”์ถœ
}

๋งŒ์•ฝ GetComponent ์•ž์— ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ง€์šด๋‹ค๋ฉด ์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์˜ค๋ธŒ์ ํŠธ์—์„œ ํ•ด๋‹น ํƒ€์ž…์˜ Component๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค. GetComponent๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ GetComponent<T>() ํ˜•์‹์œผ๋กœ ์“ด๋‹ค. T๋Š” Component์˜ ํƒ€์ž…์ด๋‹ค.

๐ŸŒŸ GetComponentInChildren

GetComponentInChildren์€ GetComponent์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Component๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์—ญํ• ์„ ํ•˜๋Š”๋ฐ, ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ์˜ ์ž์‹ ์˜ค๋ธŒ์ ํŠธ ์ค‘ ๊ฐ€์žฅ ๋จผ์ € ๋‚˜์—ด๋˜์–ด ์žˆ๋Š” ์˜ค๋ธŒ์ ์—์„œ Component๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ์“ฐ๋Š” ๋ฐฉ๋ฒ•์€ GetComponent์™€ ๋™์ผ!

GetComponentInParent

GetComponentInParent๋Š” ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ์˜ ๋ถ€๋ชจ ์œ„์น˜์— ์žˆ๋Š” ์˜ค๋ธŒ์ ํŠธ์—๊ฒŒ์„œ Component๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.

๐ŸŒŸ Array ํ˜•์‹

์œ„ ํ•จ์ˆ˜๋Š” Component๋ฅผ ํ•˜๋‚˜์”ฉ ๊ฐ€์ ธ์˜ค์ง€๋งŒ ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ํ•จ์ˆ˜๋„ ์žˆ๋‹ค. GetComponents, GetComponentsInChildren, GetComponentsInParent๋Š” ์ž๊ธฐ ์ž์‹ ์„ ํฌํ•จํ•˜์—ฌ ํ•ด๋‹น๋˜๋Š” ๊ฐ ์˜ค๋ธŒ์ ํŠธ์˜ Component๋ฅผ ๋ฐฐ์—ด๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ