[Unity]/[Unity]

[Unity] AsyncOperation

극꼼 2022. 9. 23. 20:50
반응형


<AsyncOperation>

: 비동기적인 연산을 위한 코루틴을 제공합니다.

유니티의 LoadScene 메서드를 호출했을 때, 유니티는 해당 장면의 모든 정보를 메모리로 가져오기 전까지 다른 작업을 하지 못합니다. 이 상황이 게임이 멈춰있는 상황으로 이어질 수 있기 때문에 유니티에서는 AsyncOperation을 제공합니다.

 

사용 예시를 간단하게 보여드리겠습니다.

using UnityEngine.SceneManagement;

AsyncOperation asyncOper = SceneManager.LoadSceneAsync("SceneName");

//장면이 준비되는 즉시 장면을 활성화시킬 것인지 허용 여부
asyncOper.allowSceneActivation = false; 

while(!asyncOper.isDone) //해당 동작이 준비되었는지의 여부
{
    yield return null;
    Debug.Log(asyncOper.progress); //작업의 진행 정도를 0~1사이의 값으로 확인 -> 로딩바
}

//원하는 작업을 완료시킨 후, 씬 활성화

asyncOper.allowSceneActivation = true;

 

반응형