whatisgithub

What is charactercontroller?

boundingboxsoftware/charactercontroller — explained in plain English

Analysis updated 2026-05-18

133C#Audience · developerComplexity · 3/5LicenseSetup · easy

In one sentence

A drop-in replacement for Unity's built-in character controller that fixes physics timing and slope/stair movement issues.

Mindmap

mindmap
  root((CharacterController))
    What it does
      Custom Unity character controller
      Fixes built-in edge cases
      Handles slopes and stairs
    Tech stack
      C#
      Unity
      Rigidbody physics
    Use cases
      Player movement in games
      Smooth stair traversal
      Consistent physics timing
    Audience
      Unity game developers
      Indie devs

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Replace Unity's default character controller for smoother player movement.

USE CASE 2

Build platformer or action games that need reliable stair and slope traversal.

USE CASE 3

Fix visual jitter caused by physics running out of sync with frame rate.

What is it built with?

C#UnityRigidbody

How does it compare?

boundingboxsoftware/charactercontrollerareslevrai/celestial-launcher-releasesdamianedwards/blazoridentity
Stars133133136
LanguageC#C#C#
Last pushed2022-08-23
MaintenanceDormant
Setup difficultyeasyeasymoderate
Complexity3/51/53/5
Audiencedevelopergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 30min

Drop the scripts into a Unity project, no external dependencies.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

So what is it?

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.

Copy-paste prompts

Prompt 1
Show me how to integrate this Unity character controller into an existing player movement script.
Prompt 2
Explain how the Physics Manager script in this repo times physics updates and why that matters.
Prompt 3
Help me customize the raycast based slope detection for steeper terrain.
Prompt 4
Walk me through replacing Unity's built-in CharacterController component with this one.

Frequently asked questions

What is charactercontroller?

A drop-in replacement for Unity's built-in character controller that fixes physics timing and slope/stair movement issues.

What language is charactercontroller written in?

Mainly C#. The stack also includes C#, Unity, Rigidbody.

What license does charactercontroller use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is charactercontroller to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is charactercontroller for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.