void Awake() { print("ScenePersist Awake"); if (_instance == null) { _instance = this; } else if (_instance != this) { // Most likely cause is a new level has been loaded int currentIndex = SceneManager.GetActiveScene().buildIndex; print("ScenePersist Awake - index: " + _startingIndex.ToString() + "/" + currentIndex.ToString()); if (currentIndex == _startingIndex) { // Keep original instance as the one singleton Destroy(gameObject); return; } else { // Destroy the previous instance and let this one take over Destroy(_instance.gameObject); _instance = this; } } _startingIndex = SceneManager.GetActiveScene().buildIndex; DontDestroyOnLoad(gameObject); }
private static void DestroyScenePersist() { ScenePersist scenePersist = FindObjectOfType <ScenePersist>(); if (scenePersist) { Destroy(scenePersist.gameObject); } }
void OnSceneLoaded(Scene scene, LoadSceneMode mode) { if (startingSceneIndex != SceneManager.GetActiveScene().buildIndex) { instance = null; SceneManager.sceneLoaded -= OnSceneLoaded; Destroy(gameObject); } }
void OnTriggerEnter2D(Collider2D collider2D) { ScenePersist sp = FindObjectOfType <ScenePersist>(); if (sp != null) { Destroy(sp.gameObject); } StartCoroutine(LoadMainMenu()); }
private void DeleteScenePersistObject() { // try to find ScenePSerist Game Object if found delete it and let the new // level create another object if required ScenePersist scenePersistObject = FindObjectOfType <ScenePersist>(); if (scenePersistObject) { Destroy(scenePersistObject.gameObject); } }
public void ResetGameSesionAndLoadMenu() { ScenePersist scenePersist = FindObjectOfType <ScenePersist>(); if (scenePersist != null) { scenePersist.DestroyPersist(); } SceneManager.LoadScene(0); Destroy(gameObject); }
void OnTriggerEnter2D(Collider2D collider2D) // Rick writes other instead. Maybe he doesn't care what Collider2D is called. { ScenePersist sp = FindObjectOfType <ScenePersist>(); // Nina code for solving a bug where data isn't persisting due to the ScenePersist not being destroyed. if (sp != null) { Destroy(sp.gameObject); } // start coroutine and name the IEnumerator StartCoroutine(LoadNextLevel()); }
IEnumerator LoadNextLevel() { Time.timeScale = LevelExitSlowMoFactor; yield return(new WaitForSeconds(levelLoadDelay)); Time.timeScale = 1f; ScenePersist scenePersist = FindObjectOfType <ScenePersist>(); Destroy(scenePersist); SceneManager.LoadScene(currentSceneIndex + 1); }
private void Awake() { if (scenePersist != null && scenePersist != this) { Destroy(gameObject); } else { DontDestroyOnLoad(gameObject); scenePersist = this; } }
// Start is called before the first frame update void Awake() { if (instance == null) { instance = this; } else if (instance != this) { Destroy(gameObject); } DontDestroyOnLoad(gameObject); }
private void ResetGameSession() { ScenePersist sp = FindObjectOfType <ScenePersist>(); if (sp != null) { sp.gameObject.SetActive(false); Destroy(sp.gameObject); } Destroy(gameObject); SceneManager.LoadScene(0); }
private void DestroyCurrentScenePersist() { ScenePersist scenePersist = FindObjectOfType <ScenePersist>(); if (scenePersist == null) { Debug.LogWarning("ScenePersist cannot be found and cannot be destroyed."); return; } scenePersist.gameObject.SetActive(false); Destroy(scenePersist.gameObject); }
void Start() { if (!instance) { instance = this; SceneManager.sceneLoaded += OnSceneLoaded; startingSceneIndex = SceneManager.GetActiveScene().buildIndex; DontDestroyOnLoad(gameObject); } else if (instance != this) { Destroy(gameObject); } }
private void Awake() { if (instance == null) { instance = this; SceneManager.sceneLoaded += OnSceneLoaded; startIndex = SceneManager.GetActiveScene().buildIndex; DontDestroyOnLoad(this.gameObject); } else if (instance != this) { Destroy(this.gameObject); } }
/*Llamado del menu de pause, en el cual el time scale es igual a 0, * por tanto debe restaurarse el time scale a 1 y destruir el scene persist * al igual que cuando se sale por un level exit*/ public void LoadMainMenu() { if (Time.timeScale == 0) { Time.timeScale = 1; } FindObjectOfType <GameSesion>().ResetGameSesionAndLoadMenu(); ScenePersist scenePersist = FindObjectOfType <ScenePersist>(); if (scenePersist != null) { scenePersist.DestroyPersist(); } }
IEnumerator LoadNextLevel() { Time.timeScale = levelExitSlowMotion; yield return(new WaitForSecondsRealtime(LevelLoadDelay)); Time.timeScale = 1f; ScenePersist scenePersist = FindObjectOfType <ScenePersist>(); Destroy(scenePersist); var currentSceneIndex = SceneManager.GetActiveScene().buildIndex; SceneManager.LoadScene(currentSceneIndex + 1); }
IEnumerator LoadNextScene() { yield return(new WaitForSeconds(levelLoadDelay)); ScenePersist sp = FindObjectOfType <ScenePersist>(); if (sp != null) { sp.gameObject.SetActive(false); Destroy(sp.gameObject); } var currentSceneIndex = SceneManager.GetActiveScene().buildIndex; SceneManager.LoadScene(currentSceneIndex + 1); }
// Desactivar el sonido background(MusicPlayer) private IEnumerator StartLoadNextScene() { musicPlayer.SetActive(false); myAudioSource.PlayOneShot(loadLevelClip, 1); yield return(new WaitForSeconds(0.5f)); FindObjectOfType <GameSesion>().ResetTortchInSceneAndScore(); ScenePersist scenePersist = FindObjectOfType <ScenePersist>(); if (scenePersist != null) { scenePersist.DestroyPersist(); } int currentScene = SceneManager.GetActiveScene().buildIndex; SceneManager.LoadScene(currentScene + 1); }
public void LoadSceneNow(int sceneIndex) { if (sceneIndex == 0) { GameSession gs = FindObjectOfType <GameSession>(); if (gs) { Destroy(gs); } } if (sceneIndex > GetCurrentActiveScene()) { ScenePersist sp = FindObjectOfType <ScenePersist>(); if (sp) { Destroy(sp.gameObject); } } SceneManager.LoadScene(sceneIndex); MusicPlayer.instance.PlayMusic(sceneIndex); }
// Deletes new instances only if they are created in the same scene // New scene's instance will be kept alive and the old scene's instance destroyed void CheckForNewInstance() { this.startingSceneIndex = SceneManager.GetActiveScene().buildIndex; if (instance == null) { instance = this; DontDestroyOnLoad(gameObject); } else { if (instance.startingSceneIndex == this.startingSceneIndex) { // Destroy new instance if the scene did not change Destroy(gameObject); } else { // Destroy old instance if the scene did change Destroy(instance.gameObject); instance = this; DontDestroyOnLoad(this.gameObject); } } }