유니티 씬 (Scene) 변경 방법 [유니티 C#]

1. 준비

[File] -> [Build Profile] -> [Scene List]

씬 이동을 구현하기 위해서는 유니티가 사용할 씬에 대한 리스트를 가지고 있어야 합니다.

[Add Open Scenes] 버튼을 클릭하여 현재 씬을 리스트에 추가할 수 있습니다.

2. 네임스페이스

C#
using UnityEngine.SceneManagement;

씬 이동, 관리를 하기 위해서는 ‘SceneManagement’ 네임스페이스를 선언 해야 합니다.

3. LoadScene()

C#
    private void ChangeScene()
    {
        SceneManager.LoadScene(1);
        SceneManager.LoadScene("Scene1");
    }

LoadScene은 ‘()’내에 들어간 씬의 이름 또는 씬 리스트의 인덱스값을 넣어 호출할 수 있습니다.

4. 씬 재시작

C#
    private void RestartScene()
    {
        SceneManager.LoadScene(SceneManager.GetActiveScene().name);
    }

SceneManagerGetActiveScene()함수를 사용하여 현재 활성화 된 씬의 이름을 가져올 수 있습니다.

이를 활용하여 현재 씬의 재시작을 구현할 수 있습니다.

5. 주의사항

씬을 로드하면 이전 씬의 모든 데이터는 메모리에서 제거됩니다.

이를 방지하려면 PlayerPrefs를 활용하거나, 씬 이동 후에도 데이터를 가져야 되는 스크립트에 DontDestroyOnLoad() 함수를 추가하여 씬 이동에도 오브젝트가 제거되지 않도록 할 수 있습니다.

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다