In this project you'll find my implementation for custom character controllers with Unity engine. It's using a kinematic rigidbody in the background, with interpolation enabled to have smooth movement. Usage is similar to the built-in character controller, with "better"(IMHO) collision detection. It's able to handle stairs, depenetration from moving obstacles and ground check. You're able to modify it as you want since it's open source, no need to ask for permission.