[유니티] 오브젝트 유지하기 DontDestroyOnLoad

안녕하세요 UnityBeginner입니다.
이번글에선 DontDestroyOnLoad 에 대해서 소개하겠습니다.

모바일 어플리케이션에서는 다양한 씬이 존재합니다.

게임앱을 예를들자면 로고화면이 끝난 후에 나오는 메뉴화면
메뉴화면에서 게임시작을 눌러서 이동하는 게임화면 등 

기획의 방식에 따라 씬의 수는 2개가 될 수도 그이상이 될 수 있습니다.
유니티에선 새로운 씬이 로드될때마다 이전씬에 속해있는 
오브젝트는 사라지게됩니다. 

이러한 경우에 사용되는것이 DontDestroyOnLoad입니다.
Object 클래스의 함수인 DontDestroyOnLoad를 사용하면 새로운 씬이 로드되어도
오브젝트를 유지시켜주는 기능을합니다.


DontDestroyOnLoad Example

1
2
3
void Awake() {
    DontDestroyOnLoad(transform.gameObject);
}

사용방식은 매우 간단합니다.
유지를 원하는 오브젝트에 스크립트를 추가하면 단번에 해결됩니다.


SceneManager Example


1
SceneManager.LoadScene("SceneName")

다음과 같이 SceneManager를 사용하여 다른 씬을 불러올 수 있습니다.



이번글에선 2가지만 반드시 기억하세요.

1. 유니티에선 새로운씬을 로드하는경우 이전씬의 오브젝트들은 모두 사라진다.

2. DontDestroyOnLoad를 통해 오브젝트를 유지할 수 있다.

댓글