Is there actually any downside to using a character controller in, say, a first person perspective character? Why would I ever not use one? Just curious as I usually prefer to make things from scratch.
I did a little research and found this webpage.
Well, the CharacterController is designed for cases where you don’t want physics applied to a player / NPC / object. If you want a player that can get “pushed around” by any other physics objects it’s better to use a rigidbody. With a CC you have full control over the movement. It can only move when you move it with the Move / SimpleMove function.
A lot people don’t like the CC. However some just don’t like the First-Person-prefab (which includes the scripts which moves the CC).
The CharacterController has some limitations like it’s always “up right”, so you only can turn it around the y-axis. From the physics systems point of view the CC is just a collider that doesn’t move (at least not during physics update). The CC won’t trigger OnCollision messages since it’s not a physics object. Instead it has it’s own collision detection and it’s own collision message.
So in some special cases you might be better off with a Rigidbody, dor example when you want to walk on walls / ceiling