싱글톤(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 |