싱글톤(Singleton) : 단일체 패턴. 유일하게 하나의 인스턴스만 생성할 수 있게 한다.

  1. MonoBehaviour를 상속받는(컴포넌트 기능을 하는/해당 씬에서만 귀속되는) 싱글톤
  2. 컴포넌트 기능을 하지 않는 싱글톤 (프로젝트 전체에 귀속되는)

 

public class Singleton<T> where T: class, new()
{
    private static T instance = null;
    
    public Singleton()
    {

    }

    public static T Instance
    {
        get
        {
            if (instance == null)
                instance = new T();
            return instance;
        }
    }
}

  where : 제너릭 형식 제약 조건. 기본 클래스로 포함하거나 해당 기본 클래스임을 나타냄
            -> class : 참조형식
            -> new : 매개변수가 없는 생성자
   ∴ T는 class이어야 하고 new()이어야 한다 => 참조형식이어야 하고 매개변수가 없는 생성자여야 한다.

 

더보기

이전에 만든 싱글톤(MonoBehaviour을 상속받는)은 Awake함수에 종속적으로 작동되었다.

 

그러나 이번에 만든 싱글톤은 T라는 인스턴스 변수에 접근하는순간 새로 생성 후 반환하거나(new해서 반환) 바로 반환해주기 때문에 Awake함수에 종속적으로 작동되지 않는다. 프로젝트 전체에 귀속된다.

 

전역으로 사용하는 클래스는 이렇게 사용하면 편하다!


public class NewResourceManager : Singleton<NewResourceManager>
{
   public void LoadMonster()
    {

    }

    public void LoadChatacter()
    {

    }
}

 

이렇게 하면 프로젝트 내에서 유일한 클래스가 된다!

NewResourceManager.Instance.LoadChatacter();

으로 사용할 수 있다.

'Unity' 카테고리의 다른 글

애니메이션 - Legacy, Generic, Humanoid  (0) 2021.05.26
애니메이션  (0) 2021.05.26
제너릭 클래스  (0) 2021.05.26
Resources 사용해보기  (0) 2021.05.24
캐릭터를 따라다니는 3인칭 카메라 구현  (0) 2021.05.24

+ Recent posts