Unity/유니티 기본

[4.16] 씬 전환

ljw4104 2021. 4. 16. 15:41

App Scene

  • 모든 씬을 관리하는 씬. 그러므로 씬을 이동하면서 파괴되면 안되기 때문에 DontDestroyOnLoad(this.gameObject)를 처리해준다.
  • App에서 Logo->Title 형식으로 씬을 차례로 호출한다.

씬 등록방법

File -> Build Settings 창에서 위의 빈 칸에 씬 파일을 드래그 앤 드랍하면 된다.

 

코드상에서 호출

SceneManager.LoadScene("Logo"); //동기 로드
AsyncOperation ao = SceneManager.LoadSceneAsync("Logo"); //비동기 로드
  • AsyncOperation 에서 onComplete 이벤트가 있어서 해당 씬이 로딩 된 후의 작업들을 코드로 작성할 수 있음.
ao.completed += (obj) =>
{
    //씬이 로드완료됨
    var logo = FindObjectOfType<Logo>();
    logo.onComplete = () =>
    {
        this.ChangeScene(eSceneType.Title);
    };
    logo.Init();
};