using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.InputSystem; public class DeathZone : MonoBehaviour { public Animator animator; public GameObject fadeScreen; private GameObject player; [SerializeField] private RespawnManager respawnManager; [SerializeField] private PlayerInput _playerInput; private void OnTriggerEnter(Collider other) { // Checks to make sure other collider is the Player. Sets player variable as Player game object and starts the coroutine. if (other.gameObject.CompareTag("Player")) { player = other.gameObject; StartCoroutine(RespawnPlayer()); } } // Corountine to trigger death animation, disable player movement, play fade, respawn player at last safe position and then play fade in animation and re-enable player movement. public IEnumerator RespawnPlayer() { animator.SetTrigger("IsDead"); _playerInput.enabled = false; yield return new WaitForSeconds(0.5f); fadeScreen.GetComponent().SetTrigger("fadeToBlack"); yield return new WaitForSeconds(1.5f); player.transform.position = respawnManager.GetRespawnPoint(); fadeScreen.GetComponent().SetTrigger("fadeToClear"); yield return new WaitForSeconds(0.5f); _playerInput.enabled = true; yield return null; } }