using System.Collections; using UnityEngine; namespace Scampz.GameJam.Assets.Scripts.SceneManagement { public class ConditionalTeleportPlayer : MonoBehaviour { [SerializeField] private Transform _spawnPointA; [SerializeField] private Transform _spawnPointB; [SerializeField] private Camera[] camerasToActivateA; [SerializeField] private Camera[] camerasToActivateB; private void OnTriggerEnter(Collider collider) { if (collider.CompareTag("Player")) { StartCoroutine(LoadNextLevel()); } } private IEnumerator LoadNextLevel() { var spawnPoint = _spawnPointA; var cameras = camerasToActivateA; if (UnlockSanctumState.Instance.SanctumUnlocked) { spawnPoint = _spawnPointB; cameras = camerasToActivateB; } var levelChanger = FindObjectOfType(); levelChanger.FadeAnimation(); yield return null; var player = GameObject.FindGameObjectWithTag("Player"); var cc = player.GetComponent(); cc.enabled = false; player.SetActive(false); yield return new WaitForSeconds(1.0f); yield return null; player.transform.position = spawnPoint.position; player.transform.rotation = spawnPoint.rotation; cc.enabled = true; var allCamerasInCurrentScene = FindObjectsOfType(); foreach (var sceneCamera in allCamerasInCurrentScene) sceneCamera.enabled = false; foreach (var camera in cameras) camera.enabled = true; player.SetActive(true); yield return null; } } }