Single: 현재 열려 있는 씬을 닫고 새로운 씬을 연다.
씬을 종료한다는 건 해당 씬에 생성된 모든 게임 오브젝트를 파괴한다는 의미Additive: 현재 씬을 그대로 둔 채로 지정한 씬을 불러오는 것 (기존에 씬은 그대로 있음)
이렇게 하면 여러 씬을 동시에 열어놓을 수 있음
씬은 Name(string) 또는 BuildIndex(integer) 값을 이용해 불러올 수 있다.
BuildIndex는 Build Settings의 Index 값이다. (씬을 추가 해야 사용가능)
LoadSceneAsync는 비동기 방식으로, 씬을 불러오는 동안 다른 작업을 계속 수행할 수 있다.
LoadSceneAsync 방식은 주로 코루틴을 사용하여 씬을 비동기적으로 불러옴
유니티는 씬을 불러올 때, 동기적 호출인 LoadScene() 대신,
비동기적 호출 LoadSceneAsync()를 사용하는 것이 더 좋다.
why?
LoadScene()은 중지 또는 약간의 지연 등이 발생할 수 있기 때문이다.
LoadSceneAsync()은 AsyncOperation 클래스를 리턴 값으로 전달, AsyncOperation 프로퍼티로 현재 씬의 호출 상태를 확인 할 수 있음.
메인 스레드를 전부 점유하지 않고 게임 실행을 계속할 수 있습니다.
예를 들어 로딩 화면을 보여주거나 로딩 진행도를 표시하면서도 씬 로드가 가능해집니다.
AsyncOperation 프로퍼티
allowSceneActivation : 씬을 활성화 시킨다.
isDone : 씬의 호출이 완료 되었는지를 확인한다. 완료되면 isDone은 true 값을 가진다.
progress : 씬의 호출이 얼마나 이루어 졌는지 알려주는 값이다. 0~1.0사이의 값을 가진다. 1.0이 되면, isDone은 True로 값을 가진다.
priority : 멀티씬을 로드할 때 씬을 호출하는 순서를 나타낸다.