- Home /
Destroy on Distance equals zero...
I'm trying to make my AI script destroy itself when I reaches it way-point. This is what I have so far:
function OnTriggerEnter(collider : Collider){
Destroy(collider.gameObject);
}
There is no error when it plays yet it will not disappear when it get to the way-point. What can I change or replace to get the result I'm looking for?
Answer by asafsitner · Oct 04, 2011 at 09:09 PM
It seems to me as if you're destroying the trigger's gameObject. If this script sits on the enemy object, you should use Destroy(this);
instead.
You may also want to include a check to see which trigger exactly you entered so you won't just destroy the enemy on every trigger.
Correction: You should use Destroy(this.gameObject);
and not just Destroy(this);
. Using the former will destroy the entire game object, while using the latter will destroy only the script component.
Using Destroy(gameObject);
is also legal and will yield the same result. Use whatever fits your code-readability standards.
should I use OnCollision? could I use it to where it will only destroy itself when it hits or get near the way-point?
If you use a trigger use OnTrigger. if it's just a collider use OnCollision. If it's just a collider then OnTrigger won't work, and vice versa.
Alternatively, you could check the distance with Vector3.Distance(target.position, transform.position);
$$anonymous$$ake an if statement to deter$$anonymous$$e if this distance is less then or equal to (approximately) whatever distance you want and then call Destroy(this.gameObject);
as mentioned.
Calling Destroy(collider.gameObject);
will destroy the game object you collided with. Using Destroy(this.gameObject);
will destroy the game object the script is a part of, i.e. your enemy entity.
For more on the Vector3.Distance:
http://unity3d.com/support/documentation/ScriptReference/Vector3.Distance.html
Your answer
Follow this Question
Related Questions
OnTriggerEnter - destroy (this.gameobject) if it collides with anything 2 Answers
Won't destroy coin on collision - 2D 1 Answer
Object destroys on collision script 2 Answers
How to make two objects using RidgedBodyFPSWalker Destroy one another if they come into contact 1 Answer
How do I make objects disappear as they are touched? 1 Answer