반응형
SceneLoader.cs
using UnityEngine.SceneManagement;
/// <summary>
/// Scene을 불러오는 정적 클래스입니다.
/// </summary>
public static class SceneLoader
{
/// <summary>
/// 마지막으로 방문했던 Scene의 이름입니다.
/// </summary>
static string sceneName_lastVisited;
/// <summary>
/// Scene을 불러옵니다.
/// </summary>
/// <param name="sceneName">불러올 Scene의 이름입니다.</param>
public static void LoadScene(string sceneName) {
sceneName_lastVisited = SceneManager.GetActiveScene().name; // 마지막 씬 이름을 저장합니다
SceneManager.LoadScene(sceneName); // 씬을 로드합니다.
}
/// <summary>
/// 마지막으로 방문했던 Scene을 불러옵니다.
/// </summary>
/// <param name="sceneName_fallback">마지막으로 불러올 Scene이 없을 경우 불러올 Scene의 이름입니다.</param>
public static void LoadLastScene(string sceneName_fallback = "") {
try {
LoadScene(sceneName_lastVisited); // 마지막으로 로드했던 씬을 불러옵니다.
} catch {
LoadScene(sceneName_fallback); // 불러오는데 실패시 sceneName_fallback 씬을 불러옵니다.
}
}
}
위와 같이 SceneLoader를 생성합니다.
씬 로드 Scripting
SceneLoader.LoadScene("scene_name_here");
마지막으로 방문했던 씬을 로드하기 위해서 다음과 같이 사용합니다.
마지막 씬 로드 Scripting
SceneLoader.LoadLastScene("fallback_scene_name_here");
sceneName_fallback은 지정해 주지 않아도 되지만 앱의 유연성을 위해서 지정해 주는 것이 좋습니다.
반응형