싱클톤 패턴
public class GameManager : MonoBehaviour
{
static GameManager gameManager;
public static GameManager Instance { get { return gameManager; } }
private void Awake()
{
gameManager = this;
}
}
- 이렇게 함으로써 외부에서 Instance라고 하는 프로퍼티를 통해 하나의 객체를 쉽게 접근할 수 있다.
- 싱글톤 패턴: 클래스의 인스턴스를 하나만 생성하도록 보장하는 디자인 패턴. 유니티에서는 static 키워드를 사용해 쉽게 구현 가능하다.
- 클래스의 인스턴스는 프로그램 전역에서 단 하나만 존재하도록 제한. (e.g. 게임 매니저, 오디오 매니저 등)
- static 키워드를 사용하게 되면 클래스 단위로 메모리를 공유하므로, 인스턴스가 하나만 유지되도록 보장함. 그래서 클래스 명을 통해 변수에도 접근할 수 있다.
GameManager gameManager;
void Start()
{
gameManager = GameManager.Instance;
- 이어서 Player 스크립트 Start 부분에 이렇게 적어줌 (싱글톤 패턴 접근을 위함)
- 그럼 접근했을 때 이미 GM 스크립트의 Awake에서 this로 이 단일 객체를 저장해놓은 상태이기 때문에 바로 접근할 수 있다.
게임 재시작 - Scene 가져오기
public void RestartGame()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
}
- 기존에 MainScene을 로드하는 방법과 다른 것 같아서 적어 놓음
GetActiveScene : 현재 켜져 있는 씬을 가져옴
name : 그 씬의 이름을 사용해서 다시 한 번 이 씬을 Load