The goal of this controller was to make an originally first-person controller from scratch that could be easily used by anyone. It is a highly customizable asset featuring all the basic character controller features. It can be downloaded from the Unity Asset Store or on my GitHub.
The controller includes built-in functionality for basic character controllers, like sprint, crouch, jump, and head bob. I built up the functionality of this controller over time starting with simple features like walking and sprint and moved to more complicated things like head bob later.
The controller features a custom editor to make it as simple as possible for anyone to use and change the controller values. This editor is made using Unity's built-in Editor scripting. To make it as easy as possible, every value displays a tooltip when the user hovers over the value's title. It also blocks out any unneeded variables when toggling off any function they are used with. For example, if the user were to disable sprinting then all of the corresponding sprint variables like "Spring Speed" and "Sprint Duration" would be grayed out and unable to be changed.