[UNITY] 싱글톤 패턴 기본 코드


유니티로 개발하면서 많이 쓰이는 디자인 패턴. 

클래스 구조에서 공통적으로 사용하는 전역변수나 리소스, 
데이터를 싱글톤으로 따로 정의해서 어디서나 접근 가능하도록 할 때 주로 사용한다. 

공통된 데이터를 한 곳에서 관리하는 만큼 제어하기가 용이하다.
 
다만, 싱글톤 클래스에 너무 많은 기능을 넣어버리면 
게임 볼륨이 커졌을 때 오히려 더 관리하기 힘든 경우가 발생할 수 있다. 
싱글톤 클래스가 상속하는 것이 많아질 수록 각각의 기능의 모듈화가 
제대로 이루어지지 않을 수 있기 때문이다.
     

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
 
public class GameInstance : MonoBehaviour
{
    public static GameInstance instance;
 
    void Awake()
    {
        // 처음 초기화 될 때 인스턴스가 비어있으면 자신을 넣어준다.
        // 그리고 씬이 바뀌어도 현재 게임오브젝트(instance script가 담겨있는 게임오브젝트)가 파괴 되지 않게 해준다.
        // 그리고 이미 인스턴스가 존재한다면 현재 게임오브젝트를 파괴시켜준다.
 
        if (!instance)
        {
            instance = this;
            DontDestroyOnLoad(this.gameObject);
        }
        else
        {
            Destroy(this.gameObject);
        }
    }
}
 
cs

댓글

이 블로그의 인기 게시물

[UNITY] 안드로이드 뒤로가기 버튼