SceneManager에서 씬을 통합할 수도 있지만 작업중 프로젝트뷰의 씬을 끌어다 통합시켜 볼 수 도 있다.

Play씬을 로드한후  Level_01씬을 하이라키뷰에다 끌어다 놓으면 간단하게 통합된다.

 

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

[씬관리] 씬병합  (0) 2023.03.21
[씬관리] 씬분리  (0) 2023.03.20

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

지금까지 개발했던 씬을 분리해보자 이유는 협업시 분야별로 개발후 합칠 수 있기 때문이다. 예를 들어 UI, 레벨디자이너, 메인개발자 3명이 분야별로 동시에 개발을 진행할 수 있기 때문이다.

여기서는 게임로직씬과 스테이지씬으로 나누어 보겠다.

앞서  _STAGE에 spawnPointGroup역시 하위로 드래그해서 이동시킨다.

파일 Save로 씬을 저장한다.

Scenes폴더아래 Play를 Ctrl-D로 2개 카피해서 하나는 Play_Backup 다른하나는 Level_01로 이름을 바꾼다.

현재 열려있는 씬이 Play인지 확인하고 하이라키뷰의 _STAGE 게임오브젝트를 삭제한다. 그러면 Player와UI만 남는다.

Ctrl-S Save하고 Level_01씬을 로딩한다.

이번에는 _STAGE만 남겨두고 다지운다.

 

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

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

+ Recent posts