How to load new scene asynchronously while displaying progress in Unity(in C#)

using UnityEngine;
using System.Collections;
public delegate void ProgressDelegate(float progress);
public class MyScript {
public void OnStartMyScene() {
StartCoroutine(LoadSceneAsyncByName("MySceneName", OnLoadLevelProgressUpdate));
}
public static IEnumerator LoadSceneAsyncByName(string nextLevel, ProgressDelegate progressDelegate) {
AsyncOperation async = UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(nextLevel);
while (!async.isDone) {
progressDelegate (async.progress);
async.allowSceneActivation = async.progress > 0.8;
yield return null;
}
}
private void OnLoadLevelProgressUpdate(float progress) {
Debug.Log ("async.progress: " + progress);
}
}

댓글

이 블로그의 인기 게시물

Unity에서 모델의 폴리곤의 반대편이 랜더링 되지 않는 문제 해결 방법

Docker 컨테이너 네트워크 설정시 ifconfig로 docker0를 찾을 수 없는 문제에 대해

Use FFMPEG in XCode(for MacOS)