Unity 씬 로딩 될때마다 호출되는 함수 (OnSceneLoaded )

 

씬이 로딩될 때 호출시켜야하는 함수들이 종종 생긴다.

 

예전에는 SceneManager.onSceneLoaded를 사용해서 관리했는데, 이게 없어지면서

유니티 공식문서에서는 SceneManager.sceneLoaded 델리게이트 체인을 걸어서 사용할 것을 권장하고 있다.

 

사용법은 아래와 같다.

using UnityEngine;
using UnityEngine.SceneManagement;

public class ExampleCode : MonoBehaviour
{
    void Start()
    {
    	  DonDestroyOnLoad();
        // Start는 최초 씬에서만 호출된다.
    }

    void OnEnable()
    {
    	  // 씬 매니저의 sceneLoaded에 체인을 건다.
        SceneManager.sceneLoaded += OnSceneLoaded;
    }

    // 체인을 걸어서 이 함수는 매 씬마다 호출된다.
    void OnSceneLoaded(Scene scene, LoadSceneMode mode)
    {
        Debug.Log("OnSceneLoaded: " + scene.name);
        Debug.Log(mode);
    }

    void OnDisable()
    {
        SceneManager.sceneLoaded -= OnSceneLoaded;
    }
}

 

 

댓글

Designed by JB FACTORY