using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using MoreMountains.Tools;
using UnityEngine.SceneManagement;
namespace MoreMountains.Tools
{
///
/// Add this component on an object, specify a scene name in its inspector, and call LoadScene() to load the desired scene.
///
public class MMLoadScene : MonoBehaviour
{
/// the possible modes to load scenes. Either Unity's native API, or MoreMountains' LoadingSceneManager
public enum LoadingSceneModes { UnityNative, MMSceneLoadingManager, MMAdditiveSceneLoadingManager }
/// the name of the scene that needs to be loaded when LoadScene gets called
[Tooltip("the name of the scene that needs to be loaded when LoadScene gets called")]
public string SceneName;
/// defines whether the scene will be loaded using Unity's native API or MoreMountains' way
[Tooltip("defines whether the scene will be loaded using Unity's native API or MoreMountains' way")]
public LoadingSceneModes LoadingSceneMode = LoadingSceneModes.UnityNative;
///
/// Loads the scene specified in the inspector
///
public virtual void LoadScene()
{
switch (LoadingSceneMode)
{
case LoadingSceneModes.UnityNative:
SceneManager.LoadScene (SceneName);
break;
case LoadingSceneModes.MMSceneLoadingManager:
MMSceneLoadingManager.LoadScene (SceneName);
break;
case LoadingSceneModes.MMAdditiveSceneLoadingManager:
MMAdditiveSceneLoadingManager.LoadScene(SceneName);
break;
}
}
}
}