boundingboxsoftware/charactercontroller — explained in plain English
Analysis updated 2026-05-18
Replace Unity's default character controller for smoother player movement.
Build platformer or action games that need reliable stair and slope traversal.
Fix visual jitter caused by physics running out of sync with frame rate.
| boundingboxsoftware/charactercontroller | areslevrai/celestial-launcher-releases | damianedwards/blazoridentity | |
|---|---|---|---|
| Stars | 133 | 133 | 136 |
| Language | C# | C# | C# |
| Last pushed | — | — | 2022-08-23 |
| Maintenance | — | — | Dormant |
| Setup difficulty | easy | easy | moderate |
| Complexity | 3/5 | 1/5 | 3/5 |
| Audience | developer | general | developer |
Figures from each repo's GitHub metadata at analysis time.
Drop the scripts into a Unity project, no external dependencies.
This repository contains a character controller for Unity, the popular game development platform. A character controller is the code that handles how a player-controlled character moves through a game world, including how it reacts to collisions, slopes, and steps. Unity has a built-in character controller, but it does not handle all situations correctly, and this project exists to fill those gaps. One key difference is how physics updates are timed. In a standard Unity game, physics runs on a fixed schedule that does not always align with how fast the game is rendering frames. This can cause visual inconsistencies, especially when the game slows down and physics has to run multiple times per frame to catch up. This project includes a Physics Manager script that instead runs physics once per frame using the actual time that passed since the last frame, keeping movement visually consistent. The controller also runs its corrections inside the regular Update loop rather than the FixedUpdate loop, which is the more common choice. The reason for this is that corrections applied in FixedUpdate happen before the physics engine resolves them, leaving the raw unfiltered output visible on screen. By running corrections afterward, the controller can apply things like stepping up over small obstacles and matching motion to moving platforms before the frame is drawn. Understanding the physics engine, the controller is built on a Rigidbody, which is Unity's standard physics-simulated object type. This means the character will push and be pushed by other physics objects in the expected way. For slope and stair detection, the controller uses a pattern of raycasts, which are invisible lines cast downward to measure ground height at multiple points. By averaging those measurements, it treats stair steps as a smooth slope rather than a sharp edge, allowing the character to walk over them without catching. The project is licensed under MIT.
A drop-in replacement for Unity's built-in character controller that fixes physics timing and slope/stair movement issues.
Mainly C#. The stack also includes C#, Unity, Rigidbody.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated easy, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.