ย ๋งจ ๋ฐ์ ์ง๋ฌธ ์์ฝ ์์๋๋ค.
์ธํฐ๋ท ๋ง ๊ฒ์ํ๋๋ฐ ์ด๋ค ๊ณณ์ ๊ทธ๋ฅ
DontDestroyOnLoad()ย ๋ฉ์๋๋ง ์ฌ์ฉํ๊ณ
์ด๋ค ๊ณณ์ static GameManger instance;
void Awake(){
instance = this;
}
์ด๋ ๊ฒ ์ฐ๊ณ ์๊ณ
์ ๊ฐ ์ง๊ธ ์ฐ๊ณ ์๋ ๊ฑด
ย private static GameManager _instance;
ย ย
ย ย public static GameManager Instance
ย ย {
ย ย ย ย get
ย ย ย ย {
ย ย ย ย ย ย .
ย ย ย ย ย ย if (!_instance)
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย _instance = FindObjectOfType(typeof(GameManager)) as GameManager;
ย ย ย ย ย ย ย ย if (_instance == null)
ย ย ย ย ย ย ย ย ย ย Debug.Log("no Singleton obj");
ย ย ย ย ย ย }
ย ย ย ย ย ย return _instance;
ย ย ย ย }
ย ย }
ย ย private void Awake()
ย ย {
ย ย ย ย Paused = false;
ย ย ย ย
ย ย ย ย if (_instance == null)
ย ย ย ย {
ย ย ย ย ย ย _instance = this;
ย ย ย ย }
ย ย ย ย
ย ย ย ย else if (_instance != this)
ย ย ย ย {
ย ย ย ย ย ย Destroy(gameObject);
ย ย ย ย }
ย ย ย ย
ย ย ย ย DontDestroyOnLoad(gameObject);
ย ย }
์ธ๋ฐ ์ฐจ์ด๋ ๋ญ๊ฐ์...?
์ง๋ฌธ ์์ฝ :
1.ย DontDestroyOnLoad(gameObject);๋ง ์จ์ผ๋๋ instance๋ฅผ ์จ์ผ๋๋
2. instance์ฐ๋ ์ด์ ๋?
ย
๋์ด ๋งํ ์ด๋ค ๊ณณ ์ด๋ค ๊ณณ ๋ค์์ ์์ฑํ ์ฝ๋๋ ๊ทธ๋ฅ ๊ตฌํ๋ฐฉ์์ ์ฐจ์ด์ผ๊ฑฐ์. ์ ํํ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ค์ง ์๋ ์ด์ ์ด๋ ๊ฒ๋ฐ์ ๋๋ต ๋ชปํด์ค.
1. ๋๋ค ์๊ด์์ ์ํ๋๋๋ก ์ฐ๋ฉด ๋ / 2. ๋ง๋ ๋ฐฉ๋ฒ์ ์ฐจ์ด / ์ฑ๊ธํด ํจํด์ ์ธ์ ๋ ํ๋๋ง ์กด์ฌํ๊ณ ํธ์ถ์ ๊ทธ๊ฒ๋ง ํธ์ถ๋๊ฒ๋์ด ๋ณด์ฅ๋๋ ๋์์ธ์ ๋งํจ. ์ด๊ฑธ ์ด๋ค์์ผ๋ก ๋ง๋ค์ง๋ ์๊ด์์. ์ผ๋ฐ์ ์ผ๋ก ๋ง์ด์ฐ๋ ๋ฐฉ๋ฒ๋ค์ด ์๋๋ฐ ์ ๋๋ค ๊ทธ๋ฐ๋ฐฉ์๋ค ๋ฐฉ๋ฒ๋ค์ ์ผ๋ถ์
DontDestroyOnLoad์ ์ ๋ํฐ์์ Static์ผ๋ก ์ฌ์ฉํ ๊ฒ๋ค์ด ์ด๋ค ์๋ฏธ๋ฅผ๊ฐ์ง๊ณ ์ด๋ค์์ผ๋ก ๋์ํ๋์ง๋ฅผ ๊ณต๋ถํด๋ณด๋ฉด, ์ ์ฑ๊ธํดํจํด์ ๋์์ธ์ ๋ง๋ค๊ธฐ์ํด ์ ์ป๋์ง ์ดํดํ ์ ์์๊ฒ์