์ฌ๊ธฐ์ gameobject bulletObj๋ฅผ ์ ๋ฃ์ด์ค๊ฑฐ์?
์ธ์คํด์คํ ํด์ค๋ ค๊ณ ๋ฃ์ด์ค๊ฑฐ์? ์๋๋ฉด ํจ์๊ฐ์ ธ์ฌ๋ ค๊ณ
๋ฃ์ด์ค๊ฑฐ์??
bulletObj ๊ฐ์ฒด ์ ๋ง๋ค์ด์ฃผ๋ฉด ๋ณต์ฌ๊ฐ ์๋๋๊ฒ๋ ์๋ํ ๋ฐ
์ ๋ฃ์ด์ค๊ฑด์ง ๋จธ๋ฅด๊ฒ ์ด
์ด๊ฑฐ๋์ 6์๊ฐ ๊ณจ๋จธ๋ฆฌ ์ฉํ. ๋์์ค
์ธ์คํด์คํ ํด์ค๋ ค๊ณ ๋ฃ์ด์ค๊ฑฐ์? ์๋๋ฉด ํจ์๊ฐ์ ธ์ฌ๋ ค๊ณ
๋ฃ์ด์ค๊ฑฐ์??
bulletObj ๊ฐ์ฒด ์ ๋ง๋ค์ด์ฃผ๋ฉด ๋ณต์ฌ๊ฐ ์๋๋๊ฒ๋ ์๋ํ ๋ฐ
์ ๋ฃ์ด์ค๊ฑด์ง ๋จธ๋ฅด๊ฒ ์ด
์ด๊ฑฐ๋์ 6์๊ฐ ๊ณจ๋จธ๋ฆฌ ์ฉํ. ๋์์ค
bulletObj.GetComponent(); ํ๋ ค๊ณ ์ค๋ธ์ ํธ ์์ฒด๋ฅผ ๋ณต์ฌํ๊ฒ ์๋๋ผ ์ฐธ์กฐ๋ฅผ ๋ณต์ฌํ๊ฑฐ์ ์์ ๋ณ์๋ผ์ ์ ๋ณ์๋ if ๋ธ๋ก ๋ฒ์ด๋๋ฉด ์ฌ๋ผ์ง (์ฐธ์กฐ๋ง ์ฌ๋ผ์ง๋๊ฑฐ๋ผ์ ์ค๋ธ์ ํธ๋ ๋จ์์์)
๊ทธ๋ผ ๊ฒฐ๊ตญ ํจ์์ฐพ์๋ ค๊ณ ์ ๊น ์ด๊ฑฐ์? ๋ง์ฝ์ ์ด ์คํฌ๋ฆฝ์ ํจ์ ์ ์๋ค๋ฉด BulletObj ์์จ์ค๋ ๋๋๊ฑฐ ๋ง์ง?
์ ํํ๋ ๋ฉ์๋๋ฅผ ์ฐพ์ผ๋ ค๊ณ ์ด๊ฑฐ์ ์๋ฌด๋์ GetComponent๋ฅผ ํ๋ ค๊ณ ํ๊ฒ ์๋๋ผ ๋ฐฉ๊ธ ์์ฑํ ์ค๋ธ์ ํธ์ Component๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด์ ํ๊ฑฐ๋๊น C# ํด๋์ค์ ๋ฉ์๋์ ๋ํด์ ์ฐพ์๋ณด๋ฉด ์ข์๋ฏ
๋๋ ๊ทธ๊ฑด์๊ฒ ์. ๊ทผ๋ฐ bulletObj๋ฅผ ์์ฑํ ํ์์์ด ์ด๋ฏธ ์์ฑํ bulletprefap์์์ component๋ฅผ ๊ฐ์ ธ์ค๋ฉด ๋์ง ์์ด?
๋ฐ๋๋ก ์๊ฐํด๋ณด๋ฉด instantiateํ๊ณ ๋์จ ์ค๋ธ์ ํธ๋ฅผ ๊ทธ ์ดํ์ ์ด๋ป๊ฒ ์ธ ์ ์์์ง ์๊ฐํด๋ณด์
๊ทธ๋ฌ๋ฉด ๋ฒํผ ๋๋ ์๋ ๊ณ์ ์์ฑ๋ ์ค๋ธ์ ํธ๋ค์ด ์ bulletObj๋ผ๋ ๊ฑฐ์ง?
ใ ใ ์ ํจ์ ๋ด์์๋ง ์ธ ์ ์๋ ์์ ๋ณ์์
C# ๋ณ์๋ ๋ฉ์๋ ๋ถ๋ถ ๊ณต๋ถํด๋ณด์
c์ธ์ด๋ ํฌ์ธํฐ๊ธฐ์ด๊น์ง ๋ฐฐ์์ ์ ๋ํฐ ๊ทธ๋ฅ ํ ์ ์์ ์ค ์์๋๋ฐ ์๋๋ค.. C#๋ฐ๋ก ๊ณต๋ถํด์ผ๋๋๊ตฌ๋
๊ทธ๋๋ C์ธ์ด ํฌ์ธํฐ ์ด๋์ ๋ ์ดํดํ๋ค๋ฉด C# ๋ฐฐ์ฐ๋๊ฑฐ ์์ฃผ ์ด๋ ต์ง๋ ์์ ๊ฑฐ์ ํ์ดํ
๋๊ฐ ๋ณธ๋ฌธ์ ๋ฌผ์ด๋ณด๋๊ฑด ๋ณ์๋ ์ค์ฝํ ๋ถ๋ถ์ ๋ํด ๊ฐ๋ ์ด ์์กํ ์์ด์ ๊ทธ๋ผ C๋ C#์ด๋ ๋ค๋ฅผ๊ฑฐ์์ ์ด๋ถ๋ถ๋ถํฐ ๋ค์ ๊ณต๋ถํด๋ณด์
C#์ฝ๋๋ฅผ C๊ธฐ์ค์ผ๋ก ์๊ฐํด๋ณด๋ฉด GameObject bulletObj์ ์์ฑ๋ ์ค๋ธ์ ํธ๋ฅผ ๋์ ํ๋๊ฒ ๋ณต์ฌ๋ก ๋ณด์ด๋๊ฑด ์ดํด๊ฐ ๋จ C#์์ ํด๋์ค ํ์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํฌ์ธํฐ(์ฐธ์กฐ)๋๊น
๊ทผ๋ฐ ๋ณ์๋ ์ง์ญ, ๋งด๋ฒ ๋ณ์ ๋ค ๋ฐฐ์ ๋๋ฐ ๋ ์์์ผ ํ ๊ฒ ์์? ๊ทธ๋ฅ ์ ๋ํฐ์์ ๊ทธ๊ฑธ ์ด๋ค ํํ๋ก ์ฐ๋์ง ๊ทธ๊ฒ ํ๊ฐ๋ฆฌ๋๊ฑฐ ๊ฐ์
๋จผ์ C#์ ์ ์ฒด์ ์ผ๋ก ๋ฐฐ์๋ณด๋๊ฒ ์ข์๋ฏ
ใ ใ ์ง๊ธ๋ถํฐ๋ผ๋ ๋นจ๋ฆฌ ๋ฐฐ์์ผ๊ฒ ๋ค..
๊ฑ ๋๊ฐ๋งํ Gameobject bulletObj = ์ด๊ฑธ ์ง์๋ณด๋ฉด ๋ต์ด ๋์ด
๋ญ ๋ฌป๋ ๊ฑด์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค Instantiate.GetComponent ์ํ๋ค๊ณ ๋๋ ค๊น๋ ๊ฑฐ์? ์๋๋ฉด ์ ๋ง C#์ ๋ชฐ๋ผ์ ์ง๋ฌธํ๋ ๊ฑฐ์?
6์๊ฐ ๋์ ๋์ฒด ๋ญํ๋
๋ค๋ฅธ๊ฑด ๋ค ์ดํด๋๋๋ฐ ์ ๊ฒ๋ง ๋งํ
Instantiate(....) ํ์๋ ์ด๋ฏธ ์ฌ์ ํ๋ฆฌํน(GameObject)์ด ๋ณต์ ๋์ด ์ถ๊ฐ๋ฉ๋๋ค. ๊ทธ๊ฑธ GameObjectํ์ ๋ณ์์ธ bulletObj ์ ํ ๋นํ๋ ๊ฒ์ ๋ณต์ ๋ณธ์๋ํ ์ฐธ์กฐ๋ฅผ ์ด๋ณ์์ ๋ด๋๊ฑฐ์ฃ . ๊ทธ๋ฆฌ๊ณ ์ ๋ฐ์ bulletObj.GetCOmponet ํ๋ฏ์ด ๊ทธ ๋ณต์ ๋ณธ ๊ฒ์์ค๋ธ์ ํธ์ ๋ถ์ด์๋ BulletController ์คํฌ๋ฆฝํธ ์ธ์คํด์ค๋ฅผ ์ฐพ์ bulletControllerScr์ ํ ๋นํ๊ฑฐ์ฃ . BulletController bulletControllerScr = Instantiate(....).GetComponet.... ์ด๋ ๊ฒ ํด๋ ๋ฉ๋๋ค. Instantiate๋ฅผ ์คํํ ๋๋ GetComponet๋ฅผ ์คํํ ๋ ์กฐ๊ฑด์ด ์๋ง์์(์๋ณธ ํ๋ฆฌํน์๋ชป๋จ, ์ปดํฌ๋ํธ ์์๋ฑ) ์๋ฌ๊ฐ๋๋ฉด ์ ์ฐพ์ผ์ธ์
๊ฒฐ๊ตญ, ์ค๊ฐ ๋ชจ๋ ๊ณผ์ ์ ์ค๋ฅ๊ฐ ์๋ค๋ฉด ํ์ค๋ก ํด๋ ๋์. Instantiate(bulletPrefab ,transform.position, transform.rotation).GetComponent๊บฝBulletCotroller์ ().shootBullet(vecBullet);
๊ทผ๋ฐ ๋ณดํต ์ค๊ฐ์ค๊ฐ ์ ๋ฆฌ ๋๋๋ ์ด์ ๋ ์ฒซ์งธ๊ฐ ์ฌ์ฌ์ฉ์ฑ์ด๊ณ ๋์งธ๊ฐ ๊ฐ๋ ์ฑ, ์ ์งธ๊ฐ ๋๋ฒ๊น ํธ์์ฑ์ด์์. ๋ง์ผ ์ค๊ฐ์ ๋ณต์ ๋ณธ์ GameObject ์ธ์คํด์ค๋ BulletController ์ธ์คํด์ค์ ๋ฉค๋ฒ์ ์ ๊ทผ/ํธ์ถํ ํ์๊ฐ ์์ผ๋ฉด ์ ๋ ๊ฒ ์ค๊ฐ์ ๋์ด์ ๊ทธ ์ฐธ์กฐ๋ฅผ ๊ฐ์ง๊ณ ๋ค๋ฅธ๋ฌด์ธ๊ฐ๋ฅผ ์ถ๊ฐ๋ก ํ์ฃ .
๊ฐ์ฌํฉ๋๋ค! ์ด์ ์ผ ์ข ์ดํด๊ฐ ๊ฐ๋ค์.