유니티(Unity)에서 싱글톤(Singleton) 디자인 패턴 사용 예시
- 유니티게임개발/기초공부
- 2024. 10. 11.
유니티(Unity)에서 싱글톤(Singleton) 디자인 패턴 사용 예시
싱글톤(Singleton)은 오직 하나의 인스턴스만 존재해야 하는 클래스를 만들기 위한 디자인 패턴으로 특정 클래스의 인스턴스가 중복 생성되지 않도록 제한하고 어디서든 인스턴스에 접근할 수 있습니다. 전역적으로 사용할 수 있는 매니저 클래스를 만들때 특히 유용합니다(GameManager , UIManager, AudioManager, 기타)
https://learn.unity.com/project/c-survival-guide-singletons?language=en
https://learn.unity.com/tutorial/statics-l#5c8920e7edbc2a0d28f4833c
싱글톤 사용 예시
GameManager 클래스
public class GameManager : MonoBehaviour
{
// 싱글톤 인스턴스
public static GameManager instance;
// 전역적으로 관리할 데이터들(점수, 플레이어 생명 등)
public int playerScore = 0;
void Awake()
{
if (instance != null && instance != this)
{
Destroy(gameObject);
}
else
{
instance = this;
DontDestroyOnLoad(gameObject);
}
}
public void AddScore(int amount)
{
playerScore += amount;
Debug.Log("Player Score: " + playerScore);
}
}
전역에서 접근할 수 있는 싱글톤 인스턴스로 설정합니다.
public static GameManager instance;
instance = this;
씬 전환 시에 GameManager 인스턴스가 파괴되지 않도록 설정합니다.
DontDestroyOnLoad(gameObject);
Collectible 클래스
public class Collectible : MonoBehaviour
{
public int scoreValue = 10;
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
GameManager.instance.AddScore(scoreValue);
Destroy(gameObject);
}
}
}
GameManager.instance.AddScore(scoreValue);
플레이어가 아이템을 획득하면 GameManager를 통해 점수를 추가합니다.
'유니티게임개발 > 기초공부' 카테고리의 다른 글
유니티(Unity)에서 다양한 코루틴(Coroutine) 사용 예시 (1) | 2024.10.12 |
---|---|
유니티(Unity)에서 지원하는 비디오 파일 형식 (3) | 2024.10.12 |
유니티(Unity)에서 오브젝트 풀(Object Pool) 의 유용성과 사용 예시 (1) | 2024.10.11 |
유니티(Unity) 안드로이드에서 동영상 광고(구글애드몹) 표시하면 앱 크래시 문제(Graphics device is null) (0) | 2024.10.11 |
유니티 인앱결제(Unity In-App Purshasing, IAP) 구매 복원(Restore) 구현(안드로이드, iOS) (3) | 2024.10.11 |