-
24년 5월 25일 TIL공부 기록 2024. 5. 25. 20:58
싱글턴.
게임에서 한 개만 만들라는 게 아니다.
어떠한 클래스의 한 개의 '객체'만을 만들어서 사용 하는 것이다.
이걸 이제야 이해 했다..!
클래스를 싱글턴 패턴으로 만들었는데 여러개의 객체를 생성 하면 컴퓨터가 데이터를 찾기 힘들다. 그게 이 소룡이였다.
싱글턴인 클래스가 여러개인건 상관이 없다. 속이 후련하군.
작성 방법
public static GameManager Instance; 라는 코드로 static인 클래스형을 선언 하고 Awake에서 초기화를 해준다.
private void Awake()
{
if (Instance != null) Destroy(gameObject);
Instance = this;
}객체는 하나만 있어야 하니까 Instance가 null이 아닐 경우(객체가 생성 돼 있는 경우) 파괴 하는 코드를 추가 해준다.
null일 경우 초기화를 해준다. Instance가 null인지 아닌지 확인이 가능한 이유는 static으로 선언 돼 있어서이다. 객체가 새로 생성 되어도 Instance 변수는 공유 하게 된다. 그러므로 객체 새로 만들어도 똑같은 걸 참조한다. 그래서 가능한 코드
이렇게 한 개의 객체만을 생성 하게 만들어 주고 이 객체를 다른 모든 클래스에서 참조 하면 된다.
주의 할 점은 너무 많은 기능을 넣지 않게끔 주의 해야 한다. 유용한 패턴이다 보니 한 개의 클래스에 많은 기능을 넣게 된다.
확실히 다른 것들을 공부 하다보니 예전에 이해 안 가던 것들이 이해 되는 경우가 많다. 후-련
'공부 기록' 카테고리의 다른 글
24년 5월 28일 TIL (0) 2024.05.28 24년 5월 27일 TIL (0) 2024.05.27 24년 5월 24일 TIL (0) 2024.05.24 24년 5월 23일 TIL (0) 2024.05.23 24년 5월 22일 TIL (0) 2024.05.22