58 lines
1.8 KiB
C#
58 lines
1.8 KiB
C#
|
using UnityEngine;
|
|||
|
using UnityEngine.SceneManagement;
|
|||
|
|
|||
|
namespace IngameDebugConsole.Commands
|
|||
|
{
|
|||
|
public class SceneCommands
|
|||
|
{
|
|||
|
[ConsoleMethod( "scene.load", "Loads a scene" ), UnityEngine.Scripting.Preserve]
|
|||
|
public static void LoadScene( string sceneName )
|
|||
|
{
|
|||
|
LoadSceneInternal( sceneName, false, LoadSceneMode.Single );
|
|||
|
}
|
|||
|
|
|||
|
[ConsoleMethod( "scene.load", "Loads a scene" ), UnityEngine.Scripting.Preserve]
|
|||
|
public static void LoadScene( string sceneName, LoadSceneMode mode )
|
|||
|
{
|
|||
|
LoadSceneInternal( sceneName, false, mode );
|
|||
|
}
|
|||
|
|
|||
|
[ConsoleMethod( "scene.loadasync", "Loads a scene asynchronously" ), UnityEngine.Scripting.Preserve]
|
|||
|
public static void LoadSceneAsync( string sceneName )
|
|||
|
{
|
|||
|
LoadSceneInternal( sceneName, true, LoadSceneMode.Single );
|
|||
|
}
|
|||
|
|
|||
|
[ConsoleMethod( "scene.loadasync", "Loads a scene asynchronously" ), UnityEngine.Scripting.Preserve]
|
|||
|
public static void LoadSceneAsync( string sceneName, LoadSceneMode mode )
|
|||
|
{
|
|||
|
LoadSceneInternal( sceneName, true, mode );
|
|||
|
}
|
|||
|
|
|||
|
private static void LoadSceneInternal( string sceneName, bool isAsync, LoadSceneMode mode )
|
|||
|
{
|
|||
|
if( SceneManager.GetSceneByName( sceneName ).IsValid() )
|
|||
|
{
|
|||
|
Debug.Log( "Scene " + sceneName + " is already loaded" );
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
if( isAsync )
|
|||
|
SceneManager.LoadSceneAsync( sceneName, mode );
|
|||
|
else
|
|||
|
SceneManager.LoadScene( sceneName, mode );
|
|||
|
}
|
|||
|
|
|||
|
[ConsoleMethod( "scene.unload", "Unloads a scene" ), UnityEngine.Scripting.Preserve]
|
|||
|
public static void UnloadScene( string sceneName )
|
|||
|
{
|
|||
|
SceneManager.UnloadSceneAsync( sceneName );
|
|||
|
}
|
|||
|
|
|||
|
[ConsoleMethod( "scene.restart", "Restarts the active scene" ), UnityEngine.Scripting.Preserve]
|
|||
|
public static void RestartScene()
|
|||
|
{
|
|||
|
SceneManager.LoadScene( SceneManager.GetActiveScene().name, LoadSceneMode.Single );
|
|||
|
}
|
|||
|
}
|
|||
|
}
|