Easy Character Movement 2 (ECM2) is a comprehensive set of components designed to facilitate smooth character movement in both 3D and 2D (specifically 2.5D, as it remains 3D based) environments.

The primary objective of ECM2 is to simplify the process of maneuvering game characters, empowering developers to construct game mechanics effortlessly on this foundation.

At the core of ECM2 is the CharacterMovement component, a robust and feature-rich fully kinematic character controller (aka motor). This component serves as a direct replacement for Unity's built-in character controller, employing a similar operational methodology (i.e. Move method) but with many features and advantages over it.

The cornerstone of the ECM2 system is the Character class. This class utilizes the CharacterMovement component as its character controller / motor, incorporating common modes of movement for characters, such as walking, falling, flying, swimming or any custom mode you may create. It serves as a highly customizable foundation for all your game avatars, whether they are controlled by players or AI.


  • CharacterMovement a AAA Kinematic Character Controller .

  • Robust Ground Detection:

    • Achieve realistic surface interaction with a robust ground detection system based on real surface normals.

  • Slope Limit Override:

    • Define walk-able areas on a per-face or per-object basis, ensuring precise control over character movement.

  • Configurable Walk-able Area:

    • Customize the character's 'feet' radius with the perchOffset feature, enhancing configurability.

  • Capsule-Based with Flat Base:

    • Opt for a capsule-based design with a Flat Base for ground checks to prevent characters from slowly sliding off ledges.

  • Ground Constraint:

    • Safeguard characters from being launched off ramps with a ground constraint feature.

  • Configurable Plane Constraint:

    • Control movement along locked axes with the Configurable Plane Constraint, enhancing directional precision.

  • Auto-Stepping with Momentum Preservation:

    • Enable auto-stepping that seamlessly preserves the character's momentum, including stride effects.

  • Gravity and Up Vector Customization:

    • Achieve Mario Galaxy-like effects with user-defined gravity and up vector options.

  • Physics Interactions:

    • Experience realistic physics interactions for immersive character movements.

  • Character vs Character Interactions:

    • Engage in dynamic character vs character interactions within the virtual environment.

  • Transparent Platform Support:

    • Enjoy first-class, transparent platform support for animated, scripted, or physics-based platforms without additional steps.

  • Collision and Grounding Events:

    • Receive comprehensive collision and grounding events for enhanced control and feedback.

  • Network-Friendly Design:

    • Retain full control over update and simulation time-step, ensuring network-friendly performance.

  • Friction-Based Movement Options:

    • Configure friction-based movement, including water buoyancy, for diverse environmental interactions.

  • Root Motion Support:

    • Incorporate root motion support for enhanced character animations and realism.

  • Designed for Extensibility:

    • Developed with extensibility in mind, allowing for use as-is, or complete extension through inheritance or composition.

  • Easy Integration into Existing Projects:

    • Seamlessly integrate into existing Unity projects with minimal effort.

  • Well-Commented Source Code:

    • Access fully commented C# source code for clarity, readability, and ease of extension.

  • Garbage-Collector Friendly:

    • Optimize performance with a software design that minimizes garbage collector allocations for a smoother experience.

Last updated