씬 전환 (로딩씬 팝업 기능)

담당
김철우
상태
Not started
각 씬에서 버튼 클릭으로 다음 씬으로 넘어갈때 중간에 로딩씬 보여주도록 기능 추가
SceneLoader 클래스 생성
SceneLoader prefab 생성
SceneLoader 클래스 - 싱글톤
버튼 이벤트에 SceneLoader.Instance.LoadScene(”다음씬 이름”); 코드 추가
SceneLoader 클래스
LoadScene
SceneLoader prefab을 destroyOnLoad로 gameObject를 생성 또는 활성화
SceneManager.sceneLoaded에 LoadSceneEnd 함수를 구독추가
코루틴으로 비동기 씬 로드를 실행하고 로드되는 동안 로딩씬 표시 제공
LoadSceneEnd
로드가 완료 시 fade효과, SceneLoader gameObject를 비활성화
AsyncOperation op = SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Single)
비동기 로딩
AsncOperation으로 로드가 완료했는지 판단해 주는 역할
SceneManager.LoadSceneAsync는 background에서 로드가 되도록 실행해준다
LoadSceneMode.Single은 sceneName과 이름이 같은 씬 하나만 background에서 로드가 되도록 실행.
AsyncOperation에서 제공하는 progress가 0.9 이상이면 어느 정도 로드가 완료되었다고 판단하여
op.allowSceneActivation = true; 를 실행하여 background에 있던 씬을 활성화.
로드가 완료되면 기존 씬은 제거
SceneLoader gameObject 또한 비활성화 처리