I have gone through just about everything to try and isolate this bug.

I have isolated it down to the enemy collider, but have not solved the issue.

When my player collides with my enemy, the enemy game object is destroyed and removed from the hierarchy (until reset).

Removing the enemy collider fixes this issue of course. However removing the player collider does not.

Neither the player nor the enemy has collider code written into their scripts, so I can't blame that. I did have an OnEnterCollision2D script added to the enemy game object, but have since removed it in an effort to debug the situation, and it did not do a thing.

There are no other scripts at play - only the relationship between player and enemy colliders.

I'm newish to Unity and coding, but I can't seem to find anything on this issue. Any help is much appreciated!

What. The. Heck.

If you're wanting to read through the scripts, you can here: https://forum.unity.com/threads/oncollisionenter2d-is-destroying-my-game-objects-and-i-cannot-figure-out-why.710837/

  • \$\begingroup\$ Your scripts belong in the question here, not in an external link. \$\endgroup\$
    – DMGregory
    Commented Apr 7, 2021 at 12:15

1 Answer 1


So I got some great advice on Reddit from user AverageArmadillo that I wanted to share and solved my issue.

"If you are using VS hit control + shift + F and under the search function change current document to entire solution to search your entire game solution. Look for Destroy.

Something... somewhere is making a call to destroy on collision. Remember that even inactive game objects with colliders can call collision on triggers. So if your player has some form of projectile they fire (I see an arrow in your scripts) if that arrow is not active in the hierarchy but present then it's trigger can still get fired. There is a chance that is happening.

I see it too in my game when bullets disabled still cause damage to enemies. The solution to that if it is the case was to add a check if object is active in hierarchy to the collision actions."

Turns out it was an issue with an old script in my archive folder that was calling a similar function to my new "hurt player" script.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .