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!
The basic Character Controller using the normal CharacterMotor isn’t able to push rigidbodies. You need to add this code in the OnControlerColliderHit function Unity - Scripting API: MonoBehaviour.OnControllerColliderHit(ControllerColliderHit) 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: How to make the CC(character controller) jump and push - Questions & Answers - Unity Discussions
Here is a link to the download of the file i used to try this out: https://dl.dropboxusercontent.com/u/83937500/FPSWalkerEnhanced.js
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.