How do I make my FPSController more responsive and smooth (it's very sluggish)?

Hello I have an FPSController script and it plays fine, but it is very sluggish and when it comes into contact with any that has physics/collision like a wall or box it kind of just gets “caught” in the collision rather than smoothly reacting to it. I’ve tried other FPS Controllers and none have this problem from what I’ve seen, it gets almost unmoveable when it comes into contact with an exact collision mesh. When it comes into contact with a box collider mesh it either reacts by getting stuck or being very sluggish on impact for a few seconds making the player have to remove himself from the wall before he can go back on his way. I’d like any tips, pointers, or any explanations as to why this is happening.

Here’s my FPSController Script (I wanted to paste it but it was very long so I used an external link)

If you a re running in pro then the first thing you should do is run the profiler and see whats really costing you time.

If you don’t have that, tuning this will be a lot harder. Some things to look for:

  1. Update code. Update code runs every frame. You should be doing as little work in Update (or fixed Update) as possible. As much s possible you want to b even driven. Same is true for FixedUpdate.
  2. Debug logging. Debug logging is surpassingly expensive. if you a re spitting out a lot of debug log info to the consoe, try commenting it out.
  3. CollisionStay methods. This gets back to begin event driven rather then polling. Try do do as much work as possible on the enter and exit rather then on every stay frame