[Unity] FlappyPlane - 싱글톤 패턴, Scene 가져오기

Gee·2025년 2월 17일

싱클톤 패턴

public class GameManager : MonoBehaviour
{
	// 싱글톤 패턴 - 자신을 참조할 수 있는 static 변수
    static GameManager gameManager; 

    // 싱글톤 패턴 - static 변수를 외부로 가져갈 수 있는 프로퍼티 하나
    public static GameManager Instance { get { return gameManager; } }  

    private void Awake()
    {
    	// 싱글톤 패턴 - 가장 최초의 객체를 설정해주는 작업
        gameManager = this;     
    }
}
  • 이렇게 함으로써 외부에서 Instance라고 하는 프로퍼티를 통해 하나의 객체를 쉽게 접근할 수 있다.
  • 싱글톤 패턴: 클래스의 인스턴스를 하나만 생성하도록 보장하는 디자인 패턴. 유니티에서는 static 키워드를 사용해 쉽게 구현 가능하다.
  • 클래스의 인스턴스는 프로그램 전역에서 단 하나만 존재하도록 제한. (e.g. 게임 매니저, 오디오 매니저 등)
  • static 키워드를 사용하게 되면 클래스 단위로 메모리를 공유하므로, 인스턴스가 하나만 유지되도록 보장함. 그래서 클래스 명을 통해 변수에도 접근할 수 있다.
    GameManager gameManager;

    void Start()
    {
    	// 클래스명으로 Instance라고 하는 프로퍼티를 접근
        gameManager = GameManager.Instance;             
  • 이어서 Player 스크립트 Start 부분에 이렇게 적어줌 (싱글톤 패턴 접근을 위함)
  • 그럼 접근했을 때 이미 GM 스크립트의 Awake에서 this로 이 단일 객체를 저장해놓은 상태이기 때문에 바로 접근할 수 있다.

게임 재시작 - Scene 가져오기

    public void RestartGame()
    {
        SceneManager.LoadScene(SceneManager.GetActiveScene().name);
    }
  • 기존에 MainScene을 로드하는 방법과 다른 것 같아서 적어 놓음
  • GetActiveScene : 현재 켜져 있는 씬을 가져옴
  • name : 그 씬의 이름을 사용해서 다시 한 번 이 씬을 Load
profile
...

0개의 댓글