- Home /
Help with character controller collision...
Hi guys, and girls! For some reason my script attached the the player does not process OnCollisionEnter when the player collides with another game object. I have the player A, which contains a Character Controller (which acts as a Collider, right? ) and a Kinematic Rigidbody, and a object B, which contains a Collider (not trigger) and a Non-Kinematic Rigid Body. My objective is to make the player collide and push the object with its momentum, but I cant make the collision be detected.. I tryied everything already. I don't know what else to do. Any advise?
Thank you nerd people! Cheers!
Answer by clunk47 · May 17, 2013 at 06:41 PM
Try looking at OnControllerColliderHit. A character controller only processes collisions while moving. Use this the same way as OnCollisionEnter.
void OnControllerColliderHit(ControllerColliderHit hit)
{
if(hit.collider.tag == "tag")
{
DoSomething();
}
}
Hope this helps.
Ohhhh man! OnControllerColliderHit! I completely forgot about this event! Thank you man! It helps a lot!
Answer by ExTheSea · May 17, 2013 at 06:41 PM
The basic Character Controller using the normal CharacterMotor isn't able to push rigidbodies. You need to add this code in the OnControlerColliderHit function http://docs.unity3d.com/Documentation/ScriptReference/MonoBehaviour.OnControllerColliderHit.html although for some reason if you only put this in the standard charactermotor he won't be able to jump anymore. The way I got it to work is to use the FPSWalkerEnhanced http://wiki.unity3d.com/index.php?title=FPSWalkerEnhanced and then put the code in this script's oncontrolercolliderhit function.
Refer to this question: http://answers.unity3d.com/questions/456371/how-to-make-the-cccharacter-controller-jump-and-pu.html
Here is a link to the download of the file i used to try this out: https://dl.dropboxusercontent.com/u/83937500/FPSWalkerEnhanced.js
Hi dude, thank you for the reply! I had no idea we have a FPSWalker Enhanced on Wiki! I created my own script that handles many interactions, but I will definitely take a look at this script! Thanks man, cheers!
Your answer
Follow this Question
Related Questions
Ping Pong bat is not detecting the collision with the wall 1 Answer
physics culling mask? 1 Answer
Do you have to have a rigidbody component for collision detection? 1 Answer
Keep Horizontal Momentum after Jump 2 Answers
Collision.impulse = 0 in OnCollisionStay Kinematic Static collision pair after Update 0 Answers