์์๋ ๋ถ์ด๋ ์ฐธ๊ณ ํ ๋งํ ์๋ฃ ์์๋ ๋ถ ๊ณต์ ์ข ํด์ฃผ์ญ์
..
๋ชจ๋ ์ฝ๋ ๋ฒ ์ด์ค์ ์๋์ฒ๋ผ ์ฌ์ฉ ์ค์ธ๋ฐ
์ด๋์ ๋ณด๋๊น ๋ฌด์จ findObject ํจ์ ์ฌ์ฉํด์ ์ฐ๊ณ ๋ง ๊ทธ๋ฌ๋๋ฐ;; ๊ทธ๊ฒ ๋ง๋ ๊ฑด๊ฐ์ ? ๋ญ๊ฐ ๋ง๋์ง ๋ชจ๋ฅด๊ฒ ๋ค์
public class Singleton: MonoBehaviour
{
ย ย public staticย Singletonย Instance;
ย ย private void Awake()
ย ย {
ย ย ย ย if (Instance == null)
ย ย ย ย {
ย ย ย ย ย ย Instance = this;
ย ย ย ย }
ย ย ย ย else if (Instance != this)
ย ย ย ย {
ย ย ย ย ย ย Destroy(this);
ย ย ย ย }
ย ย }
}
์์ฐ๊ธฐ
์ ์ญ์ ์์ฐ๋๊ฒ ์ข๋ค๊ฐ ์ ๋ก
์ ์์ด ์ด๋ง์ ์ฑ๊ธํค ํจํด์ ๋ง๋ ๊ตฌํ์ด๋ฉด ์ฑ๊ธํค์ด์ง... ๊ทผ๋ฐ ํค์๋ ๋์ถฉ ๋๋ ค๋ฃ๊ณ ๊ตฌ๊ธ๋ง ์ข๋ง ํด๋ณด๋ฉด ๋ง์ด ๋์ฌ๋ฏ
์๋ฌด๋ ๊ฒ๋ ํ๋ฉด ๋๋๋ฐ ๋ด์๊ฐ์ ๋ชจ๋ ธ๋นํค์ด๋น์ด๋ ์ฑ๊ธํค์ผ๋ก ์ ๋ง๋๋๊ฒ ์ข๋ค๊ณ ๋ณธ๋ค. ํ๊ฐ๋ผ๋ ๋ณด์ฅ์ด ์ ๋ ์ ๋์์
๊ทธ๋์ ์ ์ญ๋ณ์๋ก ์ฒดํฌํ์์
์ฌ๋ฌ๊ฐ ๋ง๋๋๊ฑธ ๋ชป ๋ง๋๋ค๋์ ์์ ์ด๋ฏธ ๋ฌธ์ ์ ์์ง๊ฐ ์์
๊ทธ๋ฐ๊ฑฐ ์ง์ฐฉํ์ง๋ง
๋๋ ๊ทธ๋ฅ ๋ชจ๋ ธ๋นํค์ด๋น์ด ์์๋ฐ๋ Managerํ๋ ๋ง๋ค์ด์ ์ฐ๋๋ฐ
public abstract class MonoSingleton : MonoBehaviour where T : Component { private static object _lock = new object(); private static bool _shuttingDown = false; private static T _instance; public static T Instance { get { if(_shuttingDown) { Debug.Log($"[Singleton] Instance '
์ ๊ธธ์ด์ ์๋๋ค ๊ธ์จ์ ์ฌ๋ฆผ
https://gall.dcinside.com/mgallery/board/view/?id=game_dev&no=94508&page=1