- Home /
Can't destroy objects
Hello I have a game where you shoot fireballs and have a little code that goes with it that doesn't work, I want to destroy the Instantiated fireball after 5 seconds but when the fireball is Destroyed I gives an error saying "Missing reference exception The object of type 'Transform' 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 don't know what to do, I want it to be destroyed after 5 seconds. Heres the code for the object that creates the fireballs
#pragma strict
var fireball : Transform;
var timer = 0f;
function Update ()
{
var hit : RaycastHit;
if(Input.GetMouseButtonDown(0))
{
var fire = Instantiate(fireball, transform.position , Quaternion.identity);
fire.rigidbody.useGravity = true;
fire.rigidbody.AddForce(transform.forward * 1500);
fireball != null;
}
}
this doesn't work, I even tried if(fireball == null) {
fireball != null;
}
heres the code for my fireball:
#pragma strict
function Update () {
if(Input.GetMouseButtonDown(0))
{
Destroy(gameObject, 5);
gameObject != null;
}
}
please help
Thanks :)
_1
Answer by screenname_taken · Mar 22, 2014 at 04:13 PM
I think it's because you are feeding transformation instead of the gameobject to the instantiate. It needs a gameObject. And you can't just say don't be null. You have to assign something to it in order to not be null.
In the second script, do you really need Update() or an Input.GetButton check? Why not this
Start() {
Destroy(gameObject,5);
}
When you get the error, if you click on it in the console it should take you to the code that's causing the error which should also help deter$$anonymous$$e the problem source.
I know I put the error I got in the console in my description "$$anonymous$$issing reference exception The object of type 'Transform' 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 did check if it was null.
But you didn't put what line or bit of code is causing it
code that creates fireballs:
pragma strict
var fireball : Transform; var timer = 0f;
function Update () {
if(Input.Get$$anonymous$$ouseButtonDown(0)) {
var fire = Instantiate(fireball, transform.position , Quaternion.identity);
fire.rigidbody.useGravity = true; fire.rigidbody.AddForce(transform.forward * 1500);
fireball != null;
}
}
code that destroys the gameObject causing the problem
pragma strict
function Update () {
if(Input.Get$$anonymous$$ouseButtonDown(0)) {
Destroy(gameObject, 5);
gameObject != null;
} }