본문 바로가기
게임개발/게임 UI.UX 프로그래밍

유니티 싱글톤 패턴

by pudding81 2024. 2. 5.

유니티 싱글톤 패턴이란, 클래스가 오직 하나의 인스턴스만을 가지고, 그 인스턴스에 대한 전역 접근 지점을 제공하는 것을 의미합니다.

 

이는 유니티 게임 개발에서 중요한 컴포넌트나 서비스의 관리에 흔히 사용됩니다.

 

예를 들어, 게임 매니저, 플레이어 데이터, 오디오 컨트롤러, UI 핸들러 등과 같은 게임 구성 요소들을 싱글톤으로 만들어서 어디서든 쉽게 참조하고 제어할 수 있습니다.

 

싱글톤 패턴의 장점은 다음과 같습니다.

- 유일한 인스턴스 보장 : 특정 클래스의 인스턴스가 하나만 필요한 경우 싱글톤을 사용하면, 그 클래스의 여러 인스턴스가 생성되는 것을 방지할 수 있습니다.
- 전역 접근성 : 싱글톤 객체는 전역적으로 접근 가능해야 하므로, 어디에서든 쉽게 참조할 수 있게 됩니다.
- 자원의 효율적 관리 : 공유 리소스에 대한 중앙화된 관리가 필요한 경우 싱글톤을 사용하면 효율적입니다.

싱글톤 패턴의 기본 코드는 다음과 같습니다.


public class Singleton<T> : MonoBehaviour where T : MonoBehaviour
{
    private static T _instance;

    public static T Instance
    {
        get
        {
            if (_instance == null)
            {
                _instance = FindObjectOfType<T>();

                if (_instance == null)
                {
                    GameObject obj = new GameObject();
                    obj.name = typeof(T).Name;
                    _instance = obj.AddComponent<T>();
                }
            }

            return _instance;
        }
    }
}





이 코드를 상속받는 클래스는 싱글톤이 됩니다. 예를 들어, 다음과 같이 GameManager 클래스를 만들 수 있습니다.



public class GameManager : Singleton<GameManager>
{
    // 게임 관련 변수와 메서드 정의
}



이제 어디서든 `GameManager.Instance`로 게임 매니저에 접근할 수 있습니다.


'게임개발 > 게임 UI.UX 프로그래밍' 카테고리의 다른 글

Input 필드 UI만들기  (0) 2024.02.07
로딩바 만들기  (0) 2024.02.07
스위치버튼, 탭 메뉴 UI 만들기  (0) 2024.02.06
동기 비동기  (0) 2024.02.05
직렬화 & 역직렬화  (1) 2024.02.05