DESCRIPTION
Easy Character Movement 2 is a robust, feature-rich, highly customizable, general purpose (not game-genre tied) kinematic character controller.
ECM2 can be used for any kind of character (player or AI controlled) and for a wide range of games like, third person, first person, side-scroller, platformer, adventure, point and click, and more!
ECM2 thas been developed with extensibility in mind so you can rest assured it will serve you as a robust platform to build your game or add your unique game mechanics on top of it.
ECM2 includes over 40 examples, ranging from using the new input system custom actions, PlayerInput component, first person, third person, target lock, twin-sick movement, dash, slide, ladders, AI, Cinemachine, Bolt, and many more!
Extensive documentation, and fully commented readable source code included.
WHAT’S NEW?
The Character Movement component has been completely rewritten as a fully kinematic character controller and as a direct replacement for Unity’s Character Controller offering a similar workflow (Move function) but with many features and advantages over it.
A particularly important new feature is its new ground detection algorithm based on real surface normal, it supports all Unity’s primitive colliders (Box, Sphere, Capsule), Terrain Collider and Mesh Colliders (convex and non-convex).
First-Class transparent platforms support. The CharacterMovement component is able to transparently (without further steps needed by you) manage moving platforms, being dynamic rigidbodies, scripted, animated, etc.
Use Flat Base for Ground Checks. When enabled, it performs ground checks as if the character is using a shape with a flat base. This avoids the situation where characters slowly lower off the side of a ledge (as their capsule ‘balances’ on the edge).
Network friendly. Full control over its update and simulation timestep.
An many, many more new features!
INSTALLATION
ECM2 requires Unity’s New Input System and is recommended to install it before importing ECM2 into your project as this will ease the ECM2 import process.
ECM2 includes Cinemachine based examples, this are distributed as a zip file, so before unpack this, please make sure to install the Cinemachine package into your project.
ECM2 includes Bolt based examples, this are distributed as a zip file, so before unpack this, please make sure to install Bolt into your project.
VERSION 1.1.0
* W A R N I N G !
Starting with v1.1.0, ECM2 is now a fully kinematic character controller and as a such it present significative changes.
PLEASE BACKUP BEFORE UPDATE!
How to update ?
-
Its recomended to completeley remove the ECM2 folder from your unity project before import new package from store.
-
Once removed, import the package from asset store as regular.
-
Please refer to changes document for a detailed list of removed / deprecated files and data structures and its new counterparts.
FAQ
Do I have to use new input system?
No, while ECM2 uses Unity New Input system by default, you can completely ignore it an replace it with any other input system you prefer. ECM2 It include several examples of how to make use of old input system.
Can I use URP/HDRP with ECM2?
Yes, ECM2 doesn’t do any rendering, it’ll work with any render pipeline. The demos are made using the Standard Render Pipeline (built-in), as it’s still the only stable one, and the most common denominator, but you can use any RP you prefer.
FEATURES
- Kinematic character controller.
- Work the Unity’s way, simply call its Move method, just like Unity’ Character Controller.
- Robust ground detection based on real surface normal.
- Slope Limit Override lets you define walkable areas per-face or even per-object.
- Configurable walkable area (perchOffset) lets you define the character’s ‘feet’ radius.
- Capsule-based with Flat Base for Ground Checks option. This avoids the situation where characters slowly lower off the side of a ledge.
- Ground constraint, prevent the character’s being launched off ramps.
- Configurable Plane Constraint so movement along the locked axis is not possible.
- Auto-stepping preserving character’s momentum (e.g. its stride).
- User-defined gravity and up vector for mario galaxy like effects.
- Physics interactions.
- Character vs Character interactions.
- First-class, transparent (without further steps needed by you) platforms support, be it animated, scripted, or physics based.
- Collision and Grounding events.
- Network friendly. Full control over the update and simulation timestep.
- Flexible and customizable behavior through callbacks.
- Fully configurable friction based movement including water buoyancy!
- Uses Unity New Input System as its default input (but not limited to).
- Different movement modes and states, like walking, falling, unlimited variable height jump, crouching, sprinting, flying, swimming, etc.
- First person, Third person, Agent “base” characters.
- Full control over how a character is affected (or not) by external forces, platform velocity, platform movement and / or rotation, push other rigidbodies and or characters.
- Character actions events.
- Extensive and configurable collision filtering.
- Different template scenes (First person, Third person, Side scroller, Top down) for faster startup.
- 40+ examples including custom input actions, cinemachine integration, first person, third person, character events, bouncers, fly, swim, dash, slide, ladders, and much more!
- Developed with extensibility in mind, can be used as it is, extend one of its “base” characters or simply take control of them using controllers such as other scripts or visual scripting (e.g. Bolt).
- Physics Volumes, to easily handle water, falling zones, etc. with configurable properties.
- Root motion support.
- Simple to use but complete API.
- Easy integration into existing projects.
- Fully commented C# source code. Clear, readable and easy to extend.
- Garbage-Collector friendly, no GC allocations.
And much more!
ASSET STORE PAGE
Easy Character Movement 2
DOCS AND SUPPORT
User Manual
CharacterMovement User Manual
API Reference
Email
Please don’t hesitate to post any questions, doubts or issues on the package. I’ll be happy to help you.