Question by 
               jok3riswild · Oct 18, 2018 at 06:32 PM · 
                coroutinerigidbody2dnoobnull  
              
 
              How to kill player when colliding with enemy?
I'm fairly new to c-sharp and unity, and I have a script where if an enemy hits the player, it will activate a coroutine that kills and then respawns the player. Problem is, whenever I run the program and the player hits the enemy, nothing happens. I then get the error message: The object of type 'Rigidbody2D' has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object. I messed around with the script a little and deduced that the problem begins with the "Hide Player Script" line of code. I'm not quite sure what to do. Help?
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine.UI;
 using UnityEngine;
 
 
 public class LevelManager : MonoBehaviour {
 
     public GameObject CurrentCheckPoint;
     private Rigidbody2D Player;
 
     // Particles
     public GameObject DeathParticle;
     public GameObject RespawnParticle;
 
     //Respawn Delay
     public float RespawnDelay;
 
     //Point Penalty on Death
     public int PointPenaltyOnDeath;
 
     //Store Gravity Value
     private float GravityStore;
 
     //Use this for initialization
     void Start () {
         Player = FindObjectOfType<Rigidbody2D> ();
     }
 
     public void RespawnPlayer(){
         StartCoroutine ("RespawnPlayerCo");
     }
 
     public IEnumerator RespawnPlayerCo(){
         //Hide Player
         Player.GetComponent<Renderer> ().enabled = false;
         //Generate Death Particle
         Instantiate (DeathParticle, Player.transform.position, Player.transform.rotation);
         //Point Penalty
         ScoreManager.AddPoints(-PointPenaltyOnDeath);
         //Match Players transform position
         Player.transform.position = CurrentCheckPoint.transform.position;
         //Show player
         Player.GetComponent<Renderer> ().enabled = true;
         //Gravity Reset
         GravityStore = Player.GetComponent<Rigidbody2D>().gravityScale;
         Player.GetComponent<Rigidbody2D>().gravityScale = 0f;
         Player.GetComponent<Rigidbody2D>().velocity = Vector2.zero;
         //Gravity restore
         Player.GetComponent<Rigidbody2D>().gravityScale = GravityStore;
         //Debug Message
         Debug.Log ("Player Respawn");
         //Respawn Delay
         yield return new WaitForSeconds (RespawnDelay);
         //Spawn Particle
         Instantiate (RespawnParticle, CurrentCheckPoint.transform.position, CurrentCheckPoint.transform.rotation);
     }
 }
 
 
              
               Comment
              
 
               
              Your answer