7장 UI에서 만든 Main씬을 사용해 START 버튼을 누르면 Level_01과  Play 두개의 씬을 합쳐서 보여주는 로직을 구현하자. Main 씬을 열고 UIManager 스크립트를 다음과 같이 OnStartClick()을 추가한다.

public void OnStartClick() {
    SceneManager.LoadScene("Level_01");  //씬을 로딩하고
    SceneManager.LoadScene("Play", LoadSceneMode.Additive); //씬을 추가한다
}

SceneManager클래스는 동적으로 씬을 생성, 해제하거나 기존 씬을 호출하는 메서드를 제공한다. 사용을 위해서는 using UnityEngine.SceneManagement; 네임스페이스를 명시한다.

 

 

하이라키뷰에서 Button-Start를 선택하고 인스펙터에서 Button컴포넌트의 OnClick()에서 새로 만든 OnStartClick함수를 OnButtonClick대신 교체한다.

게임을 실행하고 Start 버튼을 클릭하면 호출하려는 씬이 없다는 에러가 난다 특정씬을 호출하려면 [Build Settings]의 씬 목록에 해당 씬을 등록해야 한다. 메뉴에서 [File]-[Build Setting...]를 선택해 프로젝트뷰의 Secene폴더에서 Main, Play, Level_01씬을 드래그해서 추가한다. 추가된씬중 최상단 씬이 제일 먼저 열린다. 창을 닫으면 자동으로 저장된다.

플레이하면 Main씬이 로딩되고 START를 누르면 하이라키에 LEVEL_01, PLAY씬으로 바끼고 게임화면이 실행된다. DontDestoryOnLoad씬은 GameManager를 싱글턴으로 구현했기 때문에 자동으로 생선된 씬이다. 

 

'유니티게임강좌 > 씬관리' 카테고리의 다른 글

[씬관리] 멀티 씬 에디트 기능  (0) 2023.03.21
[씬관리] 씬분리  (0) 2023.03.20

+ Recent posts