티스토리 뷰
싱글톤 패턴이란?
오직 하나의 인스턴스만 생성해 재사용하기 위한 소프트웨어 디자인 패턴
싱글톤 오브젝트 : 게임 매니저, 오디오 매니저 등 게임 내에서 유일하게 오직 하나만 존재하는 오브젝트
싱글톤 패턴의 특징 : 오직 한 개의 클래스 인스턴스만을 갖도록 보장하고, 어디서든지 그 인스턴스에 접근이 가능
아래는 유니티에서 사용되는 싱글톤 패턴의 예제이다.
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
- ftz
- hackerschool
- 멘토링
- pwnable
- Level 06
- Level 05
- xcz.kr
- 안드로이드 멘토링
- 안드로이드
- reversing.kr
- Write-up
- unity2d
- Android
- Level 02
- C#
- Programming
- 17th HackingCamp CTF
- Level 04
- 유니티
- Level 01
- HackingCamp
- Reversing
- CodeEngn
- Advance RCE
- wargame
- Unity
- c++
- 풀이
- Basic RCE
- Level 03
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함