- Home /
2D iOS Shooter - Bullet prefab not destroyed on collision
Hello all,
I'm working on a top down shooter iOS 2D game and I'm having some problems with destroying the bullets the spaceship shoots. This is what I have done so far:
Created a top bumper. It's a sprite with a Box Collider 2D attached. It is also on its own shorting layer behind the foreground and in-front of the background (Z position is 0, the shame as spaceship).
Made the bullet, which is a prefab, a Rigid Body 2D component (with 0 Gravity Scale) and also applied a Box Collider 2D (I also tested without the Box Collider 2D and only with the Rigid Body 2D but in this case the bullet does not collide on the top bumper at all).
On the bullet prefab I attached the following script:
function OnCollisionEnter(col : Collision){
if(col.gameObject.tag == "Top"){
Destroy(gameObject);
}
}
*Note that I have assigned the top bumper a "Top" tag.
So what I ended up with is a bullet that when it reaches the top bumper, it collides to it and stays there or moves weirdly along the bumper, but it is not destroyed. See image:
I believe it may have something to do with the 2D components and the colliders I use, as this is my first 2D game and I'm not accustomed to this workflow.
Please help out if you are experienced with 2D, cause I don't seem to be able to find a solution about this.
Thank you so much!
Answer by robertbu · Jan 18, 2014 at 11:40 PM
For 2D components, you want to use OnCollisionEnter2D() rather than the 3D version (OnCollisionEnter()).
Thanks for the suggestion, you're right about the function being a 2D, however it still does the same thing. Collides and is not removed :(
Your answer
![](https://koobas.hobune.stream/wayback/20220613130813im_/https://answers.unity.com/themes/thub/images/avi.jpg)