728x90
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class LoadingSceneController : MonoBehaviour
{
static string nextScene;
[SerializeField]
private Image progressBar;
public static void LoadScene(string sceneName)
{
nextScene = sceneName;
SceneManager.LoadScene("LoadingScene");
}
private void Start()
{
StartCoroutine(LoadSceneProcess());
}
IEnumerator LoadSceneProcess()
{
AsyncOperation op = SceneManager.LoadSceneAsync(nextScene);
op.allowSceneActivation = false;
float timer = 0f;
while(!op.isDone)
{
yield return null;
if(op.progress < 0.9f)
{
progressBar.fillAmount = op.progress;
}
else
{
timer += Time.unscaledDeltaTime;
progressBar.fillAmount = Mathf.Lerp(0.9f, 1f, timer);
if(progressBar.fillAmount >= 1f)
{
op.allowSceneActivation = true;
yield break;
}
}
}
}
}
728x90
'기타 기술 > C#' 카테고리의 다른 글
ResourceManager (0) | 2023.08.12 |
---|---|
Singleton pattern (0) | 2023.08.12 |
NavMeshAgent (0) | 2023.08.11 |
이진 트리로 미로 생성 (0) | 2023.08.11 |
ObjectPool Dictionary (0) | 2023.08.02 |