public static ClassName instance; void Awake(){ instance = this; } ์ค๋ณต๊ฒ์ฌ ํ์ํ๋ฉด if(instance == null) ๋ฃ๊ณ
๋ awake๋ก ํ๋๋ฐ ์ ๋์๊ฐ
์๋ฌด ์๊ด์๋ค
์ด๋ ๊ฒ ํ๋ฉด ๊ฐ๋จํ๊ณ ํธํ์ง๋ง ๋นํ์ฑํ๋ก ์์ํด์ผ ํ๋๋์ ์ฑ๊ธํค์ผ๋ก ์ฌ์ฉํด์ผ ํ๋ ๋ฑ ์ฌ๋ฌ๊ฐ์ง ๊ฒฝ์ฐ์ ๋ฌธ์ ๊ฐ ์๊ธธ์์๊ธฐ๋๋ฌธ์ ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ค์ด ๊ณ ์๋๊ฑฐ์. ์์ง ๊ทธ๋ฐ ๊ฒฝ์ฐ๋ฅผ ๊ฒฝํํ์ง ๋ชปํ์ผ๋ฉด ์ด๊ฑธ๋ก ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํ ์๋ ์๊ฒ ์ง๋ง ์ธ์ ๊ฐ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ค์ด ํ์ํ ๋ ์ด ์ฌ๊ฑฐ๋ค
๋นํ์ฑํํด๋ awake๋์๊ฐ๋ค start๋ถํฐ ์๋์ง
์คํฌ๋ฆฝํธ๊ฐ ๋นํ์ผ๋ awake๊ฐ ๋๊ณ ๊ฒ์์ค๋ธ์ ํธ ์์ฒด๊ฐ ๋นํ์ด๋ฉด ์๋์
์ ๊ธ์ฟค ์๋ฆฌ
๋ง์ผ ๋ค๋ฅธ ๋์ด ClassName.instance = new ClassName() ์ฒ๋ผ ์ธ์คํด์ค๋ฅผ ์๋ก ํ ๋นํ๋ฉด ๊ธฐ์กด ์ ๋ณด๊ฐ ๋ ์ ๊ฐ๋ ๋ฌธ์ ๊ฐ ์๊ฒจ์ ์ฑ๊ธํค ํจํด ๊ฐ์๊ฒ ๋์จ ๊ฑฐ์. ๋๊ธฐํ ๋ฌธ์ ๋ ๋ฐ์ ํ ์ ์๋๊ฑฐ๊ณ . ํผ์์ ๊ฐ๋ฐํ๋ฉด ์๊ด ์๊ณ ์ ๋ ๊ฒ ํด๋ ์๋ง ๋์๊ฐ์ง๋ง ํ์ ์ ํ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ ํจํด์ ์ฌ์ฉํ๊ธธ ์ถ์ฒ
๋๋๊ทผ๋ฐ ๊ทธ๋ฅ ์๋ชป๋ฌ๋ค ์๊ฐํจ ์ฑ๊ธํค์ ๋ํด์ ํ์ ์๋ค์ด ์ ๋๋ก ์ธ์งํ๊ณ ๋ง๋๋๊ฒ ๋ง์ง์์๊น? ๊ฒฐ๊ตญ if๋ฌธ์ผ๋ก ๋ ์ฑ๊ธํค์ ์์ธ์ฒ๋ฆฌ๊ฐ ๋ฐ๋ํด๋ ์์ ์๋ ๊ทธ๊ฑธ ๋ชจ๋ฅด์์
์ ๋ํฐ ์ฑ๊ธํค์ ๊ทธ์ฑ๊ธํค์ด๋ ์ฐ๋์ด์ ๊ฐ ๋ฌ๋ฆ