Suggestion on what approach should I use for my 3rd person shooter(rigid body vs char con)

I am currently doing a 3rd person shooter and trying to implement wall run, grappling and jumping. After a month of playing in my sandbox. I realized the following.

  1. Using the char controller (unity’s built in) is best for FPS because it gives this smooth controls we can typically experience in 1st person / 3rd person shooters.
  2. Using char controller doesn’t work well with rigid body. I was trying to implement a wall run and I realized if my isKinetic is true , I can’t just use rigidbody’s add force. So I implemented a wall run from scratch which is now giving my alot of headaches because I am literally writing every bits of it from zero.
  3. Setting rigidbody’s gravity to true and isKinetic to false and removing the constraints on position (x,y,z) gives me weird movements (like literally the character is jumping like a ping pong ball). I think this is because the nature of my game is using WASD and setting those input into char controller (which doesnt cooperate well with rigidbody).
  4. Making my project’ basic movement controls from Char controller to rigid body approach doesn’t give me this smooth FPS/ 3rd person feel, I mean it doesn’t really make sense bacause I am not looking for a realistic movements to use the unity’s physics.

After a month of playing in my soundbox, I realized using WASD with navmeshagent is worth the try. I mean during wall walking I can just rotate the navmeshes and create navmesh links and it will do the job for me. I am not sure tho if it will give me this FPS/ 3rd person feels. I only have little to no knowledge in unity so It will really help if someone can lead me to the right path. Thanks !

Ater researching a little bit more. I think I can make an “addforce” function with character controller. It should basically be like addForce of rigidbody and on papers this will solve the complex vector calculations I am doing rn.

Either one really… did you want the enjoyment of rolling your own? Or you can always find one to use, such as this one:

That one has run, walk, jump, slide, crouch… it’s crazy-nutty!!

@Kurt-Dekker Thanks kurt ! Yes, I find it very satisfying to create my own controller even tho there are probably thousands of version of it which is exactly the same as mine and is open to access.