무민은귀여워

[유니티] 싱글톤 패턴 본문

IT/Unity

[유니티] 싱글톤 패턴

moomini 2022. 5. 16. 19:23
반응형

- 유니티 싱글톤 패턴 사용 예시

- Manager 코드

- Manager 사용 코드

유니티 싱글톤 패턴 사용 예시

- Manager 를 싱글톤 패턴을 사용하여 만든다

- 유니티는 컴포넌트 단위로 구성되므로, Manager 또한 컴포넌트를 (Componenet - Behavior - MonoBehaviour) 상속받은 MonoBehaviour 로 만든다

- 없으면 안되는 항목이므로 네이밍컨벤션으로 @를 붙여주고, DontDestoryOnLoad() 를 사용한다 

Manager 코드

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Managers : MonoBehaviour
{
    static Managers s_instance; // 유일성이 보장된다
    public static Managers Instance { get { Init(); return s_instance; } } // 유일한 매니저를 갖고온다

    // Start is called before the first frame update
    void Start()
    {
        Init();
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    static void Init()
    {
        if (s_instance == null)
        {
            GameObject go = GameObject.Find("@Managers");
            if (go == null)
            {
                go = new GameObject { name = "@Managers" };
                go.AddComponent<Managers>();
            }

            DontDestroyOnLoad(go);
            s_instance = go.GetComponent<Managers>();
        }
    }
}

Manager 사용 코드

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        Managers mg = Managers.Instance;
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}
반응형
Comments