Initial commit
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
public class SceneLoader : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private int baseSceneIndex;
|
||||
|
||||
private bool isLoaded;
|
||||
private int currentScene = 0;
|
||||
public int prevScene = 0;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
currentScene = baseSceneIndex; // holt sich den Index der aktuellen Szene
|
||||
}
|
||||
public void LoadScene(string sceneName) // ist die Funktion zum gewögnlichen Laden von Szenen
|
||||
{
|
||||
SceneManager.LoadScene(sceneName);
|
||||
}
|
||||
|
||||
public void LoadNextSceneAdditive() // Lädt die nach Index nächste Szene additiv hinzu. Wird asynchron ausgeführt.
|
||||
{
|
||||
Debug.LogError("Triggered");
|
||||
if (currentScene >= SceneManager.sceneCountInBuildSettings - 1 || SceneManager.loadedSceneCount > 2) return; // die aktuelle Szene darf nicht die letzte sein und es dürfen nöch keine zwei Szenen geladen sein.
|
||||
int nextScene = currentScene + 1; // setzt den Index für die nächste Szene
|
||||
prevScene = currentScene; // die aktuelle Szene wird zur "Previous Scene". Nun kann sie entladen werden.
|
||||
currentScene = nextScene; // die nächste Szene wird zur neuen "Current Scene".
|
||||
SceneManager.LoadSceneAsync(nextScene, LoadSceneMode.Additive); // nun wird die nächste Szene (in diesem moment dieselbe wie "Current Scene" asynchron hinzugeladen.
|
||||
Debug.Log("Loaded Scene " + nextScene);
|
||||
}
|
||||
|
||||
public void UnloadPrevSceneAdditive() // Entlädt die Szene, deren Index als "Previous Scene" festgehalten ist.
|
||||
{
|
||||
if (prevScene == baseSceneIndex) return; // Wird nicht ausgeführt, wenn die "Previous Scene" die Basis-Szene ist.
|
||||
SceneManager.UnloadSceneAsync(prevScene); // Die "Previous Scene" wird entladen.
|
||||
if (SceneManager.GetSceneByName("CurrentResults").isLoaded)
|
||||
{
|
||||
SceneManager.UnloadSceneAsync("CurrentResults");
|
||||
Debug.Log("Unloaded CurrentResults");
|
||||
}
|
||||
}
|
||||
public void LoadResultsAdditive() // Lädt die Results zur aktuellen Szene
|
||||
{
|
||||
SceneManager.LoadScene("CurrentResults", LoadSceneMode.Additive);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user