Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class LevelManager : MonoBehaviour
- {
- public GameObject currentCheckpoint; //Get current checkpoint
- private PlayerController player; //Get player
- public GameObject deathPartical; // Death particle
- public GameObject respawnPartical; // Respawn particle
- public int pointPenaltyOnDeath; // Points penalty on death
- public float respawnTime; // Time to wait before respawning
- private CameraController cameraController; //Get CameraController
- //private float gravityStore;//Gravity
- public HealthManager healthManager; //Get HealthManager
- public HealthManager playerHealthManager;//Get HealthManager
- // Start is called before the first frame update
- void Start()
- {
- player = FindObjectOfType<PlayerController>();//Get player
- cameraController = FindObjectOfType<CameraController>();//Get CameraController
- healthManager = FindObjectOfType<HealthManager>();//Get HealthManager
- //playerHealthManager = player.GetComponent<HealthManager>();//Get HealthManager
- }
- // Update is called once per frame
- void Update()
- {
- }
- public void RespawnPlayer()
- {
- StartCoroutine("RespawnPlayerCoroutine");//Starts coroutine
- }
- public IEnumerator RespawnPlayerCoroutine()//Coroutine
- {
- Instantiate(deathPartical, player.transform.position, player.transform.rotation);//Spawns death particle
- player.enabled = false;//Disables player
- player.GetComponent<Renderer>().enabled = false; // Disable the player's renderer
- cameraController.isFollowing = false;
- //gravityStore = player.GetComponent<Rigidbody2D>().gravityScale;
- //player.GetComponent<Rigidbody2D>().gravityScale = 0f;
- //player.GetComponent<Rigidbody2D>().velocity = Vector2.zero;//Resets velocity may be unnecessary
- ScoreManager.AddPoints(-pointPenaltyOnDeath);
- Debug.Log("Player Respawn");
- yield return new WaitForSeconds(respawnTime);//Waits for respawn time
- //player.GetComponent<Rigidbody2D>().gravityScale = gravityStore;
- player.transform.position = currentCheckpoint.transform.position; // Respawn the player
- player.enabled = true;//Resets player
- player.GetComponent<Renderer>().enabled = true; // Enable the player's renderer
- player.knockbackCount = 0;//Resets knockback
- healthManager.FullHealth();//Resets health
- healthManager.isDead = false; // Reset the isDead flag
- cameraController.isFollowing = true;//Resets camera
- Instantiate(respawnPartical, currentCheckpoint.transform.position, currentCheckpoint.transform.rotation);//Resets particle
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement