- Home /
Collision Only being detected on one of the objects involved in the collision - C#
Hi all!
I have an object, an asteroid to be precise, which is set up with a Sphere Collider & a non-kinematic rigidbody.
The other object involved in the collision is your Player object, which has a bubble-shaped Shield as one of it's children, set up with a Capsule Collider.
The shield is where I'm calling the OnCollisionEnter function from.
The script is below:
void OnCollisionEnter(Collision col) {
Debug.Log(col.gameObject.name);
if(col.gameObject.name == "Asteroid") {
Debug.Log("HitAsteroid!");
// HitForce = col.rigidbody.mass/GetComponent<Rigidbody>().mass * GetComponent<Rigidbody>().velocity.z; - Ingore this for now, this is for the next part of the code, I just need to get the initial collision detection to work first!
}
}
The two objects physically collide with eachother, however the problem is, I don't get any feedback from collision, it just doesn't register it as a hit.
I have also tried putting this script on the other object as a test, and it works, it detects when it hits the player, but I cannot detect on the player when it hits an asteroid, it's weird.
So to sum up, both objects have a Collider (without Trigger enabled), and one of them has a Rigidbody. In theory this should work right, or am I missing something?
Thank you in advance :)
Sam
I'm assu$$anonymous$$g your player is not called "Asteroid", so you're only going to get the " HitAsteroid! " message once...
That's the thing, I don't get the "HitAsteroid!" message at all, even though I clearly collide with it and the physics work.
And I mean feedback, as in the game telling me that there has been a collision with the asteroid.
What does it print in the first Log message? If even that doesn’t get printed, then the problem is not here, it’s somewhere else.
Why did Raresh's comment get voted down twice? I think he is right. I was troubleshooting my friends game last night and this was one issue we ran into. The OP said "So to sum up, both objects have a Collider (without Trigger enabled), and one of them has a Rigidbody." However, I'm understanding that there are THREE objects involved. The player (w/ rigidbody), the asteroid (no rigidbody), and the shield (no rigidbody). If the asteroid and shield are colliding then no collision will be detected because none of them have a rigidbody.
Your answer
Follow this Question
Related Questions
Cannot get collision to do anything 1 Answer
simple onCollision and onTrigger problem 1 Answer
OnCollisionEnter not triggering when two rigidbody collide via Instantiate 1 Answer
Which Object Calls OnCollisionEnter()? 3 Answers
Why OnCollisionEnter cannot detect collisions between colliders? 1 Answer