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.
- 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.
- 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.
- 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).
- 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 !