Advice for 3rd Person Platformer

Hi, I’ve been working on a 3rd person platformer for a while now with mixed success.
Think along the lines of Banjo-Kazooie, Mario 64 etc.

The problem is that I can’t decide on a character controller and would like some advice.
My three options seem to be Unity’s Character Controller, RigidBody capsule or coding my own controller.

I opted for creating my own via a capsule collider.
It’s being moved with Transform.MoveTowards and uses ray-casting to detect collisions and calculate the best way to move. So far it’s working well, the issue is that without relying on Unity’s in-build physics engine it makes momentum and jumping more difficult.

I hear that Unity’s Character Controller is rather limited, and I’m unaware on the best way to move a rigidbody player.

What would you suggest?
Please point me in the right direction!

Being unable to find an answer to this, I was forced to experiment by creating my own character controllers of both types.

In the end I found that Unity’s rigidBody is very difficult to work with as a character controller and seems to use Reactive physics rather than Proactive, meaning physics calculations only take place after you collide rather than as you collide.

For anyone else who may stumble across this question in their search for answers, I found the best method was to combine a scripted controller with a rigidBody.

For example, I use the rigidBody for it’s gravity system as it’s pretty solid, but still use ray-casting to ensure it doesn’t push into walls, doesn’t slide down slopes etc. Hope this helps!