- Home /
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!
A lot of talking, but he does explain the difference between the 2:
Answer by HellsPlumber · Jul 24, 2015 at 03:31 PM
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!
Your answer
![](https://koobas.hobune.stream/wayback/20220613200743im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Leaderboard system 2 Answers
Tornado physics 4 Answers
How to adress a Transform inside a arraylist that's inside a arraylist. 1 Answer
How to use function (T component) 1 Answer