씬 불러오기
Coddy Unity 여정의 실제 게임 만들기 섹션에 포함된 레슨. 56개 중 17번째.
Unity 게임은 씬으로 나뉩니다. 메뉴, 각 레벨, 크레딧 등이 씬입니다. 각 씬은 자체 오브젝트를 가진 별도의 파일이며, 스크립트는 UnityEngine.SceneManagement 네임스페이스의 SceneManager.LoadScene을 사용해 다른 씬으로 전환합니다. 인스펙터에서 연결한 이 메뉴의 Play 버튼을 누르면 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부터 다시 시작합니다.
챌린지
쉬움두 개의 포털이 있는 허브입니다. 이 빌드에는 세 개의 장면이 있습니다. Hub(첫 번째), Desert, Glacier입니다. Hub에는 Desert로 연결되는 포털 하나와 Glacier로 연결되는 포털 하나가 있으며, 각 장소에는 Hub로 돌아가는 포털이 있습니다. 모든 포털에는 Portal 스크립트가 있고, Inspector에서 포털이 연결되는 장면으로 sceneName을 설정합니다. 화살표 키로 Player를 이동합니다(준비 완료).
Portal.cs를 작성하세요. Player(Player 태그가 지정된)가 포털 안으로 걸어 들어가면 해당 포털의 sceneName에 지정된 장면을 로드합니다.
Play를 누르고, 두 장소를 모두 방문한 다음 Check를 누르세요.
직접 해보기
using UnityEngine;
public class Portal : MonoBehaviour
{
public string sceneName;
// 플레이어가 들어오면 sceneName이라는 이름의 씬을 불러옵니다
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.