- Home /
The infamous: Object Reference not set to an instance of an object
Been looking everywhere on how to fix this error in my script. It errors on hp = hp - playerShot.damage; Mono autofills it in so I know it at least sees it. I get no console warnings until I shoot the enemy and get "NullReferenceException: Object reference not set to an instance of an object Enemy.OnTriggerEnter2D (UnityEngine.Collider2D other) (at Assets/Scripts/Enemy/Enemy.cs:47)"
Enemy.cs
 public class Enemy : MonoBehaviour {
 
 
     public int hp = 10;
 
 
     void OnTriggerEnter2D(Collider2D other) {
 
         if (other.tag == "Boundary") {
             return;
         }
 
         PlayerShot playerShot = GetComponent<PlayerShot>();
 
         hp = hp - playerShot.damage;
 
         if (hp <= 0){
             Destroy (gameObject);
             Destroy (other.gameObject);
             Instantiate (explosion, transform.position, transform.rotation);
         }
     }
 }
PlayerShot.cs
 public class PlayerShot : MonoBehaviour {
 
     public int speed = 0;
     public float lifetime;
     public int damage = 1;
 
     void Start () {
 
         rigidbody2D.velocity = transform.up.normalized * speed;
         Destroy (gameObject, lifetime);
     }
 }
Answer by Bunny83 · Dec 06, 2014 at 06:47 AM
You use GetComponent inside your Enemy script however i guess your PlayerShot script is not attached to your Enemy or is it?
You probably want this instead:
 PlayerShot playerShot = other.GetComponent<PlayerShot>();
In addition you should check if the object that collides with the Enemy actually has a PlayerShot script attached by doing a null check before using your playerShot variable:
 if (playerShot != null)
 {
     hp = hp - playerShot.damage;
     // ...
 }
Your answer
 
 
             Follow this Question
Related Questions
" NullReferenceException: Object reference not set to an instance of an object" 3 Answers
NullReferenceException: Object reference not set to an instance of an object ? 1 Answer
Object Reference Not Set to an Instance of an object 0 Answers
"Object reference not set to an instance of an object" 2 Answers
Object reference not set to an instance of an object 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                