Game Movement - Characters, Ladders & Vehicles

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! 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 edinetor 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.


Networking? GameMovement is fully capable of networking and includes a working demo made using Unity's Netcode. The included demo syncs movement using client prediction and reconciliation. Inputs are simulated independently on the client and server and the client is interpolated smoothly towards the servers result.


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.


Extensions

  • AIControl - An extension that allows a user to take control of a NavMeshAgent using a CharacterMover or relinquish control back to the AI.
  • RootMotionMover - A mover that seamlessy transitions between root motion movement and kinematic movement.\
  • Use System - Get in and out of vehicles using a 'use' key in the provided demo.

FAQ

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, RootMotionMover, and VehicleMover. To suggest a new implementation email your suggestion to intuitivegamingsolutions@gmail.com

Other Assets:

Active Ragdolls - A non-restrictive, simple, and lightweight solution to active ragdolls in Unity. Bring you game AI to life, make them respond to physical forces in the world.

Damage System - An advanced damage and weapon system for your game.

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


Documentation:

API reference

Documentation


Other Links:

Discord