씬이 로딩될 때 호출시켜야하는 함수들이 종종 생긴다.
예전에는 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;
}
}
'🌍 Unity > 유니티 엔진 동작 관련' 카테고리의 다른 글
유니티 버튼 이벤트 할당 Unity Button AddListener injection (0) | 2019.12.11 |
---|---|
유니티 인터페이스로 호출 (Unity interface call / check) (0) | 2019.11.21 |
유니티 StopCoroutine이 동작하지 않을 때 Unity Stop Coroutine doesn't work (0) | 2019.05.01 |
유니티 커스텀 프로퍼티 드로워 (Unity Custom property drawer) (0) | 2019.01.06 |
유니티 프로퍼티 (인스펙터 정리) PropertyAttribute (0) | 2019.01.05 |