Skip to content

explain Singleton

Yoo Hyeokjin edited this page Jun 16, 2023 · 1 revision

Singleton

Singleton의 역할

  1. 게임 시스템에서 전체를 관장하는 스크립트(단일 시스템 자원 관리 차원)

  2. 게임 시스템상 전역 변수의 역할을 하는 스크립트

  3. 씬 로드시 데이터가 파괴되지 않고 유지

  4. 여러 오브젝트가 접근을 해야 하는 스크립트의 역할

  5. 단 한개의 객체만 존재

예시 코드

public static UserDataManager instance; // 역할 4번(다른 script에서도 해당 script의 함수에 접근할 수 있도록 함)
private void Awake()
{
    if (instance == null) // 역할 1번, 2번, 5번
    {
        instance = this; // 만약 해당 instance가 없다면 instance를 자신으로 만든다.
    }
    else if (instance != this)
    {
        Destroy(instance.gameObject); // 만약 해당 instance가 자신이 아니라면 이미 존재하는 것이므로 기존의 instance를 파괴한다.
    }
    DontDestroyOnLoad(this.gameObject); // 역할 3번(Scene이 변경되어도 파괴되지 않도록 하는 코드)
}
Clone this wiki locally