Rigidbody or CharacterController?

Hey all, so I have an issue. I've been using Unity for little over 2 weeks now. And I'm still insecure about whether to use a Rigidbody or a Character Controller for my "Player". So far I've created a FPS "Player" using the Character contoller, but I'm not sure it's what i want for my game. So if my "Player" is to have different damage areas (when shot in the foot, it doesn't damage as much as when hit in the head), can I still use Character Controller, or should i use a rigidbody for this?

Also if i throw a grenade near the "player", do i have to use the rigidbody to let him be pushed by the force applied from the grenade?

Thank you ! :D

If you're doing an FPS style game CharacterController is probably what you want. You could still have different damage zones by setting up several component colliders. If you want to use the capabilities of the physics engine your character will need a rigidbody. If you look at the unify wiki you will find lots of scripts that either enhance the CharacterController or combine the simplicity of CharacterController with the ability to use physics.

You can implement a body-part damage system no matter if you use a Rigidbody or a CharacterController. I you need more tips on how to do that, I'd suggest asking a new question about that specifically (if one doesn't already exist).

As for being moved by forces - without a Rigidbody you can't use the convenient Rigidbody API with AddForce etc., but you can still make a CharacterController be moved by a force using CharacterController.Move().