Getcomponent๋ฅผ ์ฌ์ฉํ๋ค๋ณด๋ ๋ฌธ๋ ๋๋ ์๊ฐ์ธ๋ฐ
ํด๋์ค๋ช ๋ณ์์ด๋ฆ = new ํด๋์ค๋ช ();
์ด๋ฐ์์ผ๋ก ํ๋ ํด๋์ค ์ ์ธ์ ์ด๋ ์ํฉ์์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋์?
๊ทธ๋ฅ ํ ์คํฌ๋ฆฝํธ ๋ด์์ ๊ฐํธํ ์ฌ์ฉํ๊ธฐ ์ํด์๋ง ์ ์ธํ๋ ๊ฑฐ์์?
ํ ์คํฌ๋ฆฝํธ ๋ด์์ ๊ฐํธํ ์ฌ์ฉํ๋ค๊ธฐ๋ณด๋จ ์๋ ๊ทธ๊ฒ ํด๋์ค ์์ฑ ๋ฐฉ์์ ๋๋ C++ ๋ํํด์ ์ฐ๋๊ฒ C#์ด๋ค ์ด๋ฐ ๋ง์ ๋ฃ๊ธฐ๋ง ํ๋๋ฐ C#์์๋ ํด๋์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ญ ์ค ํ์ผ๋ก ๋ค์ด๊ฐ์ง๋ง C++์์ ๋์ ํ ๋นํ๋๋ ์ํ๋๋์ ๋ฐ๋ผ ํ์ผ๋ก ๊ฐ์ง ์คํ์ผ๋ก ๊ฐ์ง ์ ํด์ง ๊ทผ๋ฐ C++์์ ๋์ ํ ๋นํ ๋ ์ฐ๋ ๋ฌธ๋ฒ์ด ํด๋์ค๋ช ๋ณ์์ด๋ฆ = new ํด๋์ค๋ช ; ์ด๊ฑฐ์ ๊ทธ๋์ ๋ํผ์ ์ด์ง๋ง ์๋ง C#์ ๋ชจ๋ ํด๋์ค ์์ฑ ๋ฐ ์ ์ธ์ ๋ค C++์ ์ด๊ฑธ ๋ฐ์๊ฑฐ๋ ๋ํํ๊ธฐ๋๋ฌธ์ ํ์์ด ์ด๋ ๊ฒ ๋ผ์๋๊ฑฐ๊ฐ์
๊ทธ๋ผ ์ด๊ฑธ ์ธ์ ์ฐ๋๋ฉด monobehavior๋ฅผ ์ฐ์ง ์๋ ์คํฌ๋ฆฝํธ๊ฐ ์ฅ์ฐฉ๋ ๊ฐ์ฒด๊ฐ ํ์ํ๊ฑฐ๋ ํ์ฌ ํ์ํ ์ค๋ธ์ ํธ๊ฐ ์์๋ ์์ฑํ ๋ ์์๋ฅผ ๋ค์ด ์ฑ๊ธํด ํจํด์ ๊ฒฝ์ฐ get์ผ๋ก static instance๋ฅผ ๊ฐ์ ธ์ค์ง๋ง๋ง์ ํ๋ ์์ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌif(instance == null){ instance = new Gameobject(); }์ด๋ฐ์์ผ๋ก ๊ฒ์์ค๋ธ์ ํธ๋ฅผ ์ฆ์์์ ์์ฑํ๊ณ ๋๋ ค๋ฐ์๋ ์
์ฌ์ค monobehavior๋ฅผ ๋ฌด์กฐ๊ฑด ์์๋ฐ๋๋ค๊ณ ์ข์๊ฒ ์๋ ๊ทธ๋งํผ ๋ถํ์ํ ๊ธฐ๋ฅ๋ค์ด ๋์ง๋์ง ๋ฌ๋ผ๋ถ๋๋ค๋๊ฑฐ๊ณ ํด๋์ค๊ฐ ๋ฌด๊ฑฐ์์ง ๊ทธ๋์ ๋๊ฐ์๊ฒฝ์ฐ monobehavior๋ฅผ ์์ธ์์๋ ์คํฌ๋ฆฝํธ๋ฉด ์๋ถ์ด๊ณ ํด๋์ค๋ช ๋ณ์์ด๋ฆ = new ํด๋์ค๋ช () ์ผ๋ก ์คํฌ๋ฆฝํธ ์ธ์คํด์คํด์ ์
๊ฐ์ฌํฉ๋๋ค. ๋์ ๊ถ๊ธ์ฆ์ด ์กฐ๊ธ ํด์๋๊ฒ ๊ฐ๋ค์.