1. 게임 시작시 로딩화면을 띄워준다
2. 메인으로 사용하는 Scene을 SceneManager.LoadSceneAsync로 불러온다.
- LoadSceneAsync는 Scene 로딩을 비동기로 진행해준다.
- LoadSceneAsync함수의 2번째 인자에 LoadSceneMode.Additive를 넣어주면 현재 Scene을 바로 닫지 않고 추가로 불러오게 된다.
이렇게 되면 현재 Scene에서는 로딩화면이나 애니메이션이 재생되어 플레이어는 로딩렉 현상을 느끼지 못하게 된다.3. 현재 Scene을 UnloadSceneAsync를 이용하여 비동기로 종료해준다.
4. 불러온 메인 Scene의 Start함수에서 로딩화면을 비활성화 시켜준다.
[CurrentScene]
void Start()
{
if(LoadingImage)
LoadingImage.SetActive(true);
StartCoroutine(SceneLoading());
}
IEnumerator SceneLoading()
{
var mAsyncOperation = SceneManager.LoadSceneAsync("NextSceneName", LoadSceneMode.Additive);
yield return mAsyncOperation;
mAsyncOperation = SceneManager.UnloadSceneAsync("CurrentSceneName");
yield return mAsyncOperation;
}
[NextScene]
void Start()
{
if(LoadingImage)
LoadingImage.SetActive(false);
}
'Unity > Tip' 카테고리의 다른 글
Unity 유니티 - Google AdMob 보상형 광고가 작동하지 않는 문제 (0) | 2020.04.22 |
---|---|
Unity 유니티 - 다국어 설정 (0) | 2020.04.22 |
Unity - 그림자가 안보일 때 (0) | 2020.04.07 |
Unity - StackOverflowException: The requested operation caused a stack overflow (0) | 2020.04.02 |
Unity - 문자열 개행, Enter, 줄바꿈 (0) | 2020.03.31 |