티스토리 뷰
싱글톤 패턴이란?
오직 하나의 인스턴스만 생성해 재사용하기 위한 소프트웨어 디자인 패턴
싱글톤 오브젝트 : 게임 매니저, 오디오 매니저 등 게임 내에서 유일하게 오직 하나만 존재하는 오브젝트
싱글톤 패턴의 특징 : 오직 한 개의 클래스 인스턴스만을 갖도록 보장하고, 어디서든지 그 인스턴스에 접근이 가능
아래는 유니티에서 사용되는 싱글톤 패턴의 예제이다.
public class GameManager : MonoBehaviour
{
public static GameManager instance;
void Awake()
{
if (instance)
{
Destroy(gameObject);
return;
}
instance = this;
DontDestroyOnLoad(gameObject);
}
}
이런 식으로 구현하면 GameManger 오브젝트는 게임 내부의 모든 곳에서 GameManger.instance로 접근할 수 있고, 중복 없이 오직 하나의 객체로 유지된다.
싱글톤 패턴의 단점 : 싱글톤 인스턴스가 다른 인스턴스들과 많은 데이터를 공유할 경우 다른 클래스 인스턴스들 간에 결합도가 높아져 OCP(Open-Closed-Princple : 개방 폐쇄 원칙)를 어기게 된다. 또한 싱글톤 인스턴스는 게임이 게임이 종료될 때까지 계속해서 메모리를 점유하고 있으므로, 너무 많은 싱글톤 인스턴스의 사용은 게임 최적화에 방해가 된다.
'Programming > Unity' 카테고리의 다른 글
[Unity] Background Scroll (배경 이미지 스크롤) (0) | 2023.02.26 |
---|---|
[Unity] 픽셀 아트가 너무 작거나 흐릿하게 보이는 문제 (101) | 2022.12.18 |
[Unity] Pixels Per Unit (3) | 2020.12.06 |
[Unity] Coroutine (코루틴) (0) | 2020.10.28 |
[Unity] Object Pooling (오브젝트 풀링) (114) | 2020.09.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- HackingCamp
- C#
- Level 02
- 17th HackingCamp CTF
- Reversing
- 안드로이드 멘토링
- Android
- Level 01
- unity2d
- Unity
- Basic RCE
- pwnable
- wargame
- Level 03
- reversing.kr
- 유니티
- CodeEngn
- ftz
- Level 06
- c++
- Programming
- 풀이
- Level 05
- 안드로이드
- Write-up
- Level 04
- hackerschool
- Advance RCE
- 멘토링
- xcz.kr
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 |
글 보관함