Sick of Unity's plain old CharacterController? Want AAA game movement options without the headache? Game Movement to the rescue! This asset features a highly extensible movement base that gathers inputs from an input driver which gathers inputs from either the legacy or new Unity input system (or even a custom input driver coded by you!) and passes it to an active 'mover' allowing for movement inputs to be handled uniquely based on your character's situation.

New input system? Old input system? Custom input system? This asset supports them all!

Want to drive a vehicle? Simple! Push a VehicleMover onto the movement controller's stack and you're driving.

Don't feel like coding ladders? No problem, this asset includes a powerful LadderMover and ladders in the demo scene showing both ladders and monkey bars!

Moving platforms? Sliding on slopes? Physics interactions? Anti-gravity? Crouching? Double Jumps? Tripple jumps? Stamina? This asset has it all. Don't waste your time implementing these features yourself when the provided CharacterMover provides easy-to-use, extensible, and customizable implementations of all these features. Features like slope sliding and physics interactions provide tags and components to override behaviors for specific objects.

Realistic physics interactions. The asset's CharacterMover allows the developer to control the extent to which the character interacts with the environment from the downwards force they apply on RIgidbodies to their ability to push Rigidbodies in the world or walk up steep slopes. The powerful pushing system lets you control exactly what the player can and can't push in the world!

Advanced pushing. The character's push strength determines how massive of Rigidbodies they may push. If enabled masses will combine as the character pushes objects with a CharacterMoverCompoundMass component attached into other Rigidbodies. The player's push angle also scales pushing power if this setting is enabled.

Not enough? Implement your own IMover type to handle gathered movement inputs in your own unique way, or suggest Movers you want to see to us add and we may just implement them! For example, we plan on adding a SwimMover in the near future. Simply pushing your custom IMover onto the movement controller's movement stack will make your custom mover take over controls of the character.

Quick setup!

A simple character can be made by adding as few as 3 components:

  • InputGatherer - on character prefab.
  • MovementController - on character prefab.
  • CharacterMover - on character prefab.

A character that can drive vehicles? Just add 3 more.

  • VehicleMover - on character prefab.
  • VehicleUser - provides public methods to enter a vehicle.
  • Vehicle - on vehicle prefab.

Ladders? Just 3 more.

  • LadderMover - on character prefab.
  • LadderUser - on character prefab.
  • Ladder - on ladder prefab.

The demo scene has fully-functional examples.

Love Unity Editor Events? We do too. This asset provides events for everything, both UnityEvent style and relevant C# delegate event style where parameters may be modified. Like all of our assets, GameMovement is extremely coder-friendly.

Want to add visual or audio effects? GameMovement gives the user access to a comprehensive list of editor events that cover all events you could possibly want an action to occur on. Using these you can add effects for jumping, sliding, falling, multi/double jumping, sprinting, crouching, uncrouching, and likely any other movement-related event you could imagine.

Customizable MovementController. Making a networked game? Implement your own simple IMovementController interface in just a few lines of code to take over input simulations and simulate inputs at whatever tickrate you need.

Why waste your time? implementing movement yourself when you can get this complete solution for as little as many people earn in 1 hour of work.

Well documented. comes with a demo scene, hand-written documentation, and a generated API reference.

Highly customizable. FPS game? No problem change the referenced 'Move Relative To Transform' in the CharacterMover to your FPS camera and you're done. Want to make a side-scroller? Simple, just unbind movement inputs on the axis you don't need.

And more! This asset also comes with a 'PathMove' system that allows a user to set up waypoints and have a Transform or Rigidbody follow them in a variety of ways.


  • AIControl - An extension that allows a user to take control of a NavMeshAgent using a CharacterMover or relinquish control back to the AI.


Q: How can I upgrade to Unity's new input system?

  • This will take care of itself however you may want to upgrade the provided demo.
  • To upgrade the provided demo to the new Unity "Input System" once you've upgraded your project to include Unity's "Input System" package simply double click 'Package_NewInputSystem.unitypackage' and import it, this will overwrite relevant demo prefabs with versions that use the InputSystemInputGatherer.

Q: How can I suggest new Mover implementations?

  • The package currently contains a CharacterMover, LadderMover, and VehicleMover. To suggest a new implementation email your suggestion to

Other Assets:

Editor Physics Simulator - Simulate and record physics in the editor.

Editor Animation Freezer - Freeze Animators at a specific frame in an animation.

Console Commands & UI - Console commands & UII panels for Unity.


API reference