Initialer Upload neues Unity-Projekt
This commit is contained in:
69
Assets/SceneManagerScript.cs
Normal file
69
Assets/SceneManagerScript.cs
Normal file
@ -0,0 +1,69 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
using System.Collections;
|
||||
|
||||
public class SceneManagerScript : MonoBehaviour
|
||||
{
|
||||
// Liste der Szenennamen
|
||||
private string[] scenes = { "Scene1-passiv", "Scene2-activ", "Scene3-interactiv" };
|
||||
private int currentSceneIndex = 0;
|
||||
|
||||
void Start()
|
||||
{
|
||||
// Finde den aktuellen Szenenindex basierend auf der aktiven Szene
|
||||
currentSceneIndex = System.Array.IndexOf(scenes, SceneManager.GetActiveScene().name);
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
// <20>berpr<70>fe, ob die Taste "K" oder die rechte Maustaste gedr<64>ckt wurde
|
||||
if (Input.GetKeyDown(KeyCode.K) || Input.GetMouseButtonDown(1))
|
||||
{
|
||||
// <20>berpr<70>fe, ob die aktuelle Szene die letzte Szene ist
|
||||
if (currentSceneIndex == scenes.Length - 1)
|
||||
{
|
||||
// Beende das Spiel
|
||||
QuitGame();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Lade die n<>chste Szene
|
||||
StartCoroutine(LoadNextScene());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
IEnumerator LoadNextScene()
|
||||
{
|
||||
// Erh<72>he den Index und lade die n<>chste Szene
|
||||
currentSceneIndex = (currentSceneIndex + 1) % scenes.Length;
|
||||
SceneManager.LoadScene(scenes[currentSceneIndex]);
|
||||
|
||||
// Warte einen Frame, um sicherzustellen, dass die Szene vollst<73>ndig geladen ist
|
||||
yield return null;
|
||||
|
||||
// F<>ge eine Verz<72>gerung von 1 Sekunde hinzu, um sicherzustellen, dass alle Komponenten initialisiert sind
|
||||
yield return new WaitForSeconds(1f);
|
||||
|
||||
// Initialisiere die Szene
|
||||
InitializeScene();
|
||||
}
|
||||
|
||||
void InitializeScene()
|
||||
{
|
||||
// F<>ge hier Logik hinzu, um den Avatar oder andere Komponenten zu initialisieren
|
||||
Debug.Log("Szene initialisiert");
|
||||
// Beispiel: GameObject avatar = GameObject.Find("Avatar");
|
||||
// if (avatar != null) avatar.GetComponent<AvatarScript>().Initialize();
|
||||
}
|
||||
|
||||
void QuitGame()
|
||||
{
|
||||
// <20>berpr<70>fe, ob das Spiel im Editor l<>uft
|
||||
#if UNITY_EDITOR
|
||||
UnityEditor.EditorApplication.isPlaying = false;
|
||||
#else
|
||||
Application.Quit();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user