Whenever a bullet is deleted it gives the error message “MissingReferenceException: The object of type ‘GameObject’ 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.” but I can’t find the problem. Several tutorials I’ve seen show this working fine.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Bullet : MonoBehaviour
{
float moveSpeed = 7f;
Rigidbody2D rb;
Player target; //placeholder need update
Vector2 moveDirection;
// Start is called before the first frame update
void Start()
{
rb = GetComponent<Rigidbody2D> ();
target = GameObject.FindObjectOfType<Player>();
moveDirection = (target.transform.position - transform.position).normalized * moveSpeed;
rb.velocity = new Vector2 (moveDirection.x, moveDirection.y);
Destroy (gameObject, 3f);
}
void OnTriggerEnter2D (Collider2D col)
{
if (col.gameObject.name.Equals ("Player")) {
Debug.Log ("Hit!");
Destroy (gameObject);
}
}
}
The answer is always the same… ALWAYS. It is the single most common error ever.
Don’t waste your life spinning around and round on this error. Instead, learn how to fix it fast… it’s EASY!!
Some notes on how to fix a NullReferenceException error in Unity3D
also known as: Unassigned Reference Exception
also known as: Missing Reference Exception
also known as: Object reference not set to an instance of an object
The basic steps outlined above are:
Identify what is null
Identify why it is null
Fix that.
Expect to see this error a LOT. It’s easily the most common thing to do when working. Learn how to fix it rapidly. It’s easy. See the above link for more tips.
You need to figure out HOW that variable is supposed to get its initial value. There are many ways in Unity. In order of likelihood, it might be ONE of the following:
drag it in using the inspector
code inside this script initializes it
some OTHER external code initializes it
? something else?
This is the kind of mindset and thinking process you need to bring to this problem:
Step by step, break it down, find the problem.
Here is a clean analogy of the actual underlying problem of a null reference exception: