IEnumerator Transition(string sceneName, DestinationTag destinationTag) { FadeUI fadeUI = Instantiate(fadeCanvasPrefabs); SaveManager.Instance.SavePlayerData(); yield return(StartCoroutine(fadeUI.FadeOutScene(2f))); if (!SceneManager.GetActiveScene().name.Equals(sceneName)) { yield return(SceneManager.LoadSceneAsync(sceneName)); yield return(Instantiate(playerPrefabs, GetDestination(destinationTag).transform.position, GetDestination(destinationTag).transform.rotation)); SaveManager.Instance.LoadPlayerData(); } else { GameObject player = GameManager.Instance.playerStats.gameObject; player.GetComponent <NavMeshAgent>().enabled = false; player.transform.SetPositionAndRotation(GetDestination(destinationTag).transform.position, GetDestination(destinationTag).transform.rotation); player.GetComponent <NavMeshAgent>().enabled = true; } yield return(StartCoroutine(fadeUI.FadeInScene(2f))); }
protected SceneTransitionDestination GetDestination(DestinationTag destinationTag) { SceneTransitionDestination[] entrances = FindObjectsOfType <SceneTransitionDestination>(); for (int i = 0; i < entrances.Length; i++) { if (entrances[i].DestinationTag == destinationTag) { return(entrances[i]); } } Debug.LogWarning("No entrance was found with the " + destinationTag + " tag."); return(null); }
private TransitionDestination GetDestination(DestinationTag destinationTag) { TransitionDestination[] temps = FindObjectsOfType <TransitionDestination>(); foreach (var VARIABLE in temps) { if (VARIABLE.destinationTag == destinationTag) { return(VARIABLE); } } return(null); }