Hand-Held Weapon Collision Detection Not Working (going through walls)

I'm working on creating a first person game where the FPC can carry weapons and attack with them (e.g. a sword). The issue I'm having is when I carry the weapon around (the weapon is a child of my FPC, and is in front of me, but not attacking), it goes through walls and other objects. I've tried using colliders on the sword, but these go through walls as well.

When I make the colliders triggers, they do correctly detect the other object. So I'm confused why when I make them solid colliders (not triggers), the FPC does not stop moving when the weapon hits the other object. Is there a way to carry weapons in front of you that have colliders on them and stop the FPC from moving?

I've looked at the FPS tutorial and others and know that I can shrink the sword object and put it 'within' my FPC radius, but then I run into the issue of when i attack with the sword, the enemy will have to be very, very close to me for the hit detection to work (using colliders/triggers).

Thanks.

You can't have the sword automatically drive a parent objects behavior (in a general sense, thats what inverse kinematics. You'll need to leverage scripting to get the desired behavior, especially because, as a rule, CharacterControllers exist outside the bounds of normal game physics.

You will have to have some sort of script on the sword that detects collisions, and have your walls and other barrier objects in a specific tag or layer that your script can check for. From there the script will need to inform whatever you have driving the CharacterController that it can't move any closer to the wall.

Alternately, the script could appropriately move the sword closer to the CharacterController, but you'll need someway to detect when the sword back to the appropriate distance from the player. Perhaps wrapping the sword with a larger trigger, so that when the collider touches the wall the sword is moved backward, but not so far that the trigger isn't touching the wall still. When the player moves far enough away that the trigger is no longer touching the wall either, you can move the sword back into place.

Those are my ideas, but I'm sure there are other solutions as well.