본문 바로가기

ㄱㅔ임 ㄱㅐ발

(유니티) 싱글톤 패턴에 대해 알아보ㅈㅏ!

싱글톤이란?

싱글톤 패턴이란 하나의 인스턴스만 존재하며, 전역적으로 접근할 수 있는 클래스 디자인 패턴 입니다.

 

어떠한 상황에 사용하는가?

게임 매니저나 오디오 매니저 등 게임 내에 한개만 필요하고 여러곳에서 접근을 할 수 있도록 만들어야 할 때 사용합니다.

싱글톤 사용하는법

싱글톤은 크게 두가지로 나누어서 적용시킬 수 있는데 첫번째로 스크립트에 삽입하는것과 싱글톤 스크립트를 상속시키는 방법이 있습니다!

public class GameManager : MonoBehaviour
{
    private static GameManager instance = null;
    
    void Awake()
    {
        if(instance == null)
        {
            instance = this;
        }
        else
        {
            Destroy(gameObject);
        }
    }
    
    ...
}

이러한 스크립트 내에 싱글톤 패턴을 작성하는 방법과

public abstract class Singleton<T> : MonoBehaviour where T : MonoBehaviour 
{

    private static T _instance;
    public static T instance
    {
        get
        {
            if (_instance == null)
            {
                try
                {
                    _instance = (T)FindObjectOfType<T>();
                }
                catch (System.Exception e)
                {
                    Debug.LogError(e.StackTrace);
                    return null;
                }
            }
            return _instance;
        }
    }
}

따로 싱글톤 스크립트 작성 후 상속시키는 방법이 있습니다.

 

이상으로 글 마치겠습니다!