씬 불러오기
Coddy Unity 여정의 실제 게임 만들기 섹션에 포함된 레슨. 60개 중 17번째.
Unity 게임은 씬으로 나뉩니다. 메뉴, 각 레벨, 크레딧이 각각 씬입니다. 각 씬은 고유한 오브젝트가 들어 있는 별도의 파일이며, 스크립트는 SceneManager.LoadScene을 사용해 UnityEngine.SceneManagement 네임스페이스에서 다른 씬으로 전환합니다. 인스펙터에서 연결한 이 메뉴의 ‘플레이’ 버튼은 Forest 레벨을 엽니다.
using UnityEngine;
using UnityEngine.SceneManagement;
public class MainMenu : MonoBehaviour
{
public void Play()
{
SceneManager.LoadScene("Forest");
}
}Unity는 빌드의 씬 목록에 있는 씬만 불러올 수 있습니다. Unity 6에서는 File > Build Profiles의 Scene List에서 확인할 수 있습니다(이전 버전에서는 이 창을 Build Settings라고 부릅니다). 이름은 씬 파일의 이름과 정확히 일치해야 합니다. 목록에서 씬이 빠져 있거나 "Forrest"와 같은 오타가 있으면 씬이 불러와지지 않습니다. Console에는 Scene 'Forrest' couldn't be loaded로 시작하며 해당 씬이 빌드에 추가되지 않았다고 알리는 오류가 표시되고, 게임은 메뉴에 그대로 남습니다.
전환은 즉시 일어나지 않습니다. 먼저 현재 프레임의 나머지 부분이 실행되므로 LoadScene 뒤에 있는 줄도 계속 실행됩니다. 다음 프레임이 시작될 때 Unity가 이전 씬의 모든 오브젝트를 제거하고 새 씬을 구성하며, 새 씬의 스크립트는 Awake와 Start부터 다시 시작합니다.
챌린지
쉬움각 포털이 sceneName에 지정된 씬을 불러오도록 하세요.
Portal.cs맨 위에using UnityEngine.SceneManagement;를 추가하세요.void OnTriggerEnter(Collider other)를 작성하세요.other.CompareTag("Player")이면SceneManager.LoadScene(sceneName);를 호출하세요.
‘플레이’를 누르고 각 포털 안으로 걸어 들어가세요. Desert, Hub, Glacier 순서로 불러와집니다. 그런 다음 ‘확인’을 누르세요.
직접 해보기
using UnityEngine;
public class Portal : MonoBehaviour
{
public string sceneName;
// 플레이어가 들어오면 sceneName이라는 이름의 씬을 로드합니다
}
실제 게임 만들기의 모든 레슨
직접 연습해 보세요: Unity 플레이그라운드