๋ด๊ฐ ์ฐ๋ ํ ํ๋ฆฟ์๋์๊ณ , https://skuld2000.tistory.com/26 ์๊ธฐ์๋ ๊ฐ์๊ฑฐ ์ฌ์ฉํ ์์๋ค๊ณ ํ๋๋ฐ..
์ง๊ธ๋ณด๋ ํ ํ๋ฆฟ๊บผ๋ ๊ทธ๋ ๊ณ ์๋ฌด๋ฆฌ ์์๋ฐ์์จ๋ ๋๋ DontDestroyOnLoad ๊ฐ ์คํ์ด์๋๋ค..
์ ์ ์ง๋ฌธ์ ๋๊ฐ m_Instance ๊ฐ ํ๋ฒ์ด๋ผ๋ ๋ฐ๋๋์ผ ํ๋ค๋๋ฐ.. ๊ทธ๋ฌ๋ ค๋ฉด ์ด๊ฑฐ ์ด์ฐ์์ผํ๋๊ฑฐ์ผ?
๋ก๊ทธ์ฐ์ด๋ด๋ ๋ฐ๋์ํ๋๊ฑฐ๊ฐ๋๋ผ๊ณ .. ์ ๊น์ง ์คํ์ด์๋๋๊ฑฐ๊ฐ์๋ฐ.. ์ ๊ธฐ๋ธ๋ก๊ทธ์๋ ์ธ์์๋ค๋๊ฑฐ๋ณด๋ ๋ง๊ธดํ ํ ๋ฐ...
https://everyday-devup.tistory.com/12
์ด๊ฑธ๋ก ๋ฐ๊ฟ์ ํด๊ฒฐํ๊ธดํ๋๋ฐ..
lock (_Lock) //Thread Safe { if (_Instance == null) { // ์ธ์คํด์ค ์กด์ฌ ์ฌ๋ถ ํ์ธ _Instance = (T)FindObjectOfType(typeof(T)); // ์์ง ์์ฑ๋์ง ์์๋ค๋ฉด ์ธ์คํด์ค ์์ฑ if (_Instance == null) {
์ฌ๊ธฐ์์ null์ด ์๋๋ผ์ ๊ทธ๋ฌ๋๋ฐ.. ์ฒ์๋ถํฐ ์ฌ์ ์ฑ๊ธํค ๊ฐ์ฒด๊ฐ ์์ผ๋ฉด ์ด์ฉ๋ผ๊ณ ์์ฒ๋ผ ๋ง๋ค์๋๊ฑฐ์ง ๊ทธ๋ฅ ์๋ชป๋๊ฑด๊ฐ?
Awake์์ DontDestroy ํ๊ฒ ํ๋ฉด ์ด๋ฐ?
์์ผ๋ฉด FindObjectOfType ์ผ๋ก ๊ฐ์๋ผ์ฐ๊ณ
์์ผ๋ฉด ์ปจํ ์ด๋ ์์ฑ ํ์ AddComponent๋ก ์คํฌ๋ฆฝํธ ์ถ๊ฐ
https://docs.unity3d.com/ScriptReference/RuntimeInitializeOnLoadMethodAttribute.html
static ํจ์ ๋ง๋ค์ด์ ์ ์ดํธ๋ฆฌ๋ทฐํธ์ AfterAssembliesLoaded ์ธ์๋ก ๋ฃ์ผ๋ฉด ํ๋ ์ด ์์ํ ๋ ์ํํจ
์ํ๋ ๋ต์ ์๋๊ฑฐ๊ฐ์๋ฐ ๋ต๋ณ๋ค ๊ณ ๋ง์์ด