๊ทธ๋ฅ Awake()์์ _instance = this ํ๋ฉด ์๋๋?์ if๋ฌธ์ผ๋ก ์ ๊ฑฐ ์กฐ๊ฑด ๊ฒ์ฌํ๋๊ฑฐ์?
2๊ฐ์์ผ๋ฉด์๋ผ์??
์์์ ๊ฑธ๋ฌ์ง๋ค๋๊ฑด ์ด๋ฏธ ์๋ค๋๊ฑด๋ฐ.
๊ฐ์ ์ฅ๋ฉด ๋๋์์ฌ ๋ ์ฅ๋ฉด์ ๋ถ์ด์๋ ๋์ผํ ์ค๋ธ์ ํธ ์์ผ๋๊น ๊ทธ๊ฑฐ ๊ฒ์ฌํ๊ณ ๊ธฐ์กด๊บผ ์ ์งํ๋๊ฑฐ์์
์ ๋ํฐ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ์์ง์ด๋ ์ฝ๋๋ค์์๋ ์ ๋ ๊ฒ ํด์ ๋๊ฐ ์ธ์ ๊ฐ์ ธ๋ค ์ธ์ง๋ชจ๋ฅด๋๊ป
private static GameManager m_Instance; public static GameManager Instance { get { if (m_Instance == null) m_Instance = FindObjectOfType(); return m_Instance; } }๋ ์ด ์ฝ๋๊ฐ ์ ์ผ ํธํ๋๋ผ
์ด๋์ ๊ฐ ์ด๋ฏธ ๋ง๋ค์์ผ๋ฉด ๊ฑ๊ฐ ๋ ๋ง๋ค์ด์ง ํ์๊ฐ ์์ผ๋๊น
ํธ์ถํ ๋๋ง๋ค ์ ์ธ์คํด์ค๋ก ์ฌํ ๋น ํด๋ฒ๋ฆฌ๋ฉด ๋ฉค๋ฒ๋ณ์๊ฐ ์ ์ฅ์ด ์๋์์ด - dc App
์ฝ๋ฉ ๋ค์ํ
์ฑ๊ธํค์ ์ฌ์ฉํ๋ ์๋ฏธ์ ์ฑ๊ธํค ๊ฐ๋ ์ ์๋ฉด ๋จ. ์ฑ๊ธํค์ ๊ฐ์ฅ ํฐ ํน์ง์ด ์ ์ผ์ฑ์ ๋ณด์ฅ์. ๋ ๋ง์ฒ๋ผ _instance = this ํ๋ฉด ์ ์ผ์ฑ์ด ๋ณด์ฅ๋์ด์ผํ ์ฝ๋๊ฐ ์คํ๋ ๋๋ง๋ค ๊ต์ฒด๊ฐ ๋ ์๋ ์๋ค๋๊ฑฐ์. ๊ทธ๋ ๊ฒ ๋๋ฉด ์ ์ผ์ฑ์ ๋ณด์ฅ ๋ฐ์ ์ ์๊ณ ์ ์์ ์ผ๋ก ๋์ํ๋ค๋ ๋ณด์ฅ ๋ํ ์ฌ๋ผ์ง๋ค๊ณ ๋ณด๋ฉด๋จ
์ ์ฝ๋ ๋ณด๋ฉด _instance ๊ฐ null์ด ์๋๋ผ๋ ์๋ฆฌ๋ ์ด๋ฏธ ํด๋น ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ ์ค๋ธ์ ํธ๊ฐ ์๊ณ ๊ทธ ์ค๋ธ์ ํธ๊ฐ ์ ์ผ์ฑ์ ๊ฐ์ ธ์ผํ๊ธฐ ๋๋ฌธ์ ์ถํ์ ์์ฑ๋๋ ์ค๋ธ์ ํธ๋ ํ๊ดดํด์ฃผ๋๊ฑฐ์