Develog
로그인

Unity) Scene

강성현
∙2026년 9월 3일∙조회 5
SceneUnity
Unity) Scene
본문 로딩 중...
0
강성현

댓글 0

1. 씬 (Scene)이란?

Hierarchy에 놓인 게임 오브젝트와 그 설정을 담아 둔 파일입니다.

 

1-1) 게임을 여러 씬으로 나누는 이유

  • 한 씬이 담는 오브젝트 수가 줄어 Hierarchy에서 찾기 쉬워집니다.
  • 지금 만들고 있는 화면만 열어 두고 작업할 수 있습니다.
  • 여러 사람이 나눠 작업할 때 서로 다른 씬을 고치면 부딪히지 않습니다.

 


1-2) 빌드 세팅

목록에 등록하는 이유 :

코드로 씬을 불러오기 위해서는 Build Settings 목록에 등록되어 있어야 합니다.

코드 상에서 씬을 변경할때 Build Settings에 있는 Build Index나 "Title" 같은 string 타입인 씬 이름으로 변경할 수 있습니다.

 


1-3) SceneManager를 통한 씬 전환

 

- 네임스페이스

C#은 형식이 많아 형식들을 성격별로 묶어 두는데, 그 묶음을 네임스페이스(namespace, 이름을 묶어두는 단위) 라고 합니다.

파일 맨 위의 using은 어느 묶음에 든 이름을 앞에 묶음 이름 없이 그대로 쓰겠다 라는 선언입니다.

 

먼저, SceneManager를 사용하기 위해서는

using UnityEngine.SceneManagement;

해당 네임스페이스를 먼저 선언해줘야합니다.

 

 

- LoadScene

인자로 씬의 이름을 넘기거나, 빌드 인덱스를 넘겨줍니다.

csharp
SceneManager.LoadScene("Play");
SceneManager.LoadScene(1);

==LoadScene== 같은 경우 씬이 다음 프레임에 로드되며, 즉시 로드 되지 않다고 공식문서에 명시되어 있습니다.

따라서, Update 이벤트 함수 내에 있는 ==LoadScene== 바로 다음줄에서 새 씬의 오브젝트를 찾으려고 하면 동작하지 않습니다.

 

 

- Single과 Additive

==LoadScene==은 두 번째 인자로 어떻게 부를지를 받습니다. 생략하면 ==LoadSceneMode.Single==입니다.

값무엇을 하나
LoadSceneMode.Single열려 있던 씬을 닫고 새 씬을 엽니다
LoadSceneMode.Additive열려 있던 씬을 그대로 두고 새 씬을 겹쳐 엽니다

 

 

- 지금 씬의 이름 확인

지금 활성 상태인 씬은 **SceneManager.GetActiveScene() ** 으로 가져옵니다.

활성 씬은 지금 화면에 보이는 씬이 아닌

새로 만들어지는 게임 오브젝트가 놓이는 곳이자 조명 설정의 출처로 정의되어있습니다.

 

 

- DontDestroyOnLoad

씬이 바뀔때 그 씬에 있던 게임 오브젝트가 전부 사라집니다.

DontDestroyOnLoad 를 통해 게임오브젝트를 넘기면 그 오브젝트는 씬이 바뀌어도 사라지지 않습니다.

csharp
DontDestroyOnLoad(gameObject);

※ 단, 그 게임 오브젝트가 계층의 맨위, 부모가 없는 오브젝트여야 합니다.

  • 현재는 싱글톤 기법을 배우지 않은 상태라, ==DontDestroyOnLoad== 만 사용하게 된다면, 해당 오브젝트가 씬을 옮길때마다
    삭제되지 않고 중복되는 현상이 발생한다.

 

새 글이 올라오면 Develog 알림으로 알려드려요

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.

관련 글

[Unity] 제네릭의 컴파일

[Unity] 제네릭의 컴파일

ㅇㅇ

10월 7일42
[Unity] 제네릭과 가변성(variance)

[Unity] 제네릭과 가변성(variance)

제네릭과 가변성

10월 6일821
[Unity] IEnumerator 개요

[Unity] IEnumerator 개요

코루틴에이저포에버

10월 6일4
[Unity] 제네릭의 컴파일
Unity

NEW[Unity] 제네릭의 컴파일

ㅇㅇ

KYO
KYO
420
KYO
KYO
∙10월 7일
420
[Unity] 제네릭과 가변성(variance)
Unity

[Unity] 제네릭과 가변성(variance)

제네릭과 가변성

KYO
KYO
821
KYO
KYO
∙10월 6일
821
[Unity] IEnumerator 개요
Unity

[Unity] IEnumerator 개요

코루틴에이저포에버

KYO
KYO
400
KYO
KYO
∙10월 6일
400