Ruya Games

Scene 변경시 이벤트 호출 본문

Unity

Scene 변경시 이벤트 호출

SadEvil 2023. 11. 30. 20:20

유니티에서 Scene을 변경할때 특정한 동작을 실행하고 싶을때, Load 또는 Unload시의 이벤트를 추가하는것으로 구현할 수 있습니다.

다음은 Scene이 변경될때 이전 Scene과 변경되는 Scene의 이름을 저장하는 클래스입니다.

public static class LoadSceneManager {
	public static string previousSceneName;
	public static string currentSceneName;

	//앱 시작시 임의의 클래스에서 LoadSceneManager.Initialize()를 호출해야 각 이벤트들이 추가됩니다.
	public static void Initialize() {
		SceneManager.sceneLoaded += LoadSceneEvent;
		SceneManager.sceneUnloaded += UnLoadSceneEvent;
		
	}
	private static void UnLoadSceneEvent(Scene scene) {
		previousSceneName = scene.name;
	}

	private static void LoadSceneEvent(Scene scene, LoadSceneMode mode) {
		currentSceneName = scene.name;
	}
}

SceneManager.LoadScene을 호출하면 현재 Scene Unload & 다음 Scene Load의 과정을 진행하는데, 그 과정에서 특정 메소드를 이벤트로 추가할 수 있습니다.