A Control system for free (Regular) movement with custom moves support (like roll or dash) it also comes with all possible properties of a movement system like speed, rotation speed, custom rotation speed, animation control, and camera following system (with rotation correction), and a lot more.
The system also supports raw inputs (direction scaled from 0 to 1)... Check API
The system has a section for custom movements (like fast dashing or rolling)
will all possible properties and live enable/disable controls...
Check examples and API for script control
Note:
This System requires an Input Controller to receive commands (MOST Controller or any other input system) and all examples in MOST IN ONE use MOST Controller.
it's much better this way to be easier to modify and if you want to use another Input system instead of MOST Controller.
you will find the "Input Getter" section inside the .cs file contains all functions that receive input commands for this system, Check API.
API
// All attributes are set and get so you can modify or call// Next to each line shows the return and set data Type // Functions// main behavior enable and disable controllerMost_FreeMovement.EnableState(bool Enable);__________________ On Start Moving __________________// Start Moving function, call it to enable/start moving// OnInputDetected() Call it if the input doesn't provide direction yet// Like.. when touch the screen without moving the finger... On Touch began only// This method will move the object depending on its current rotationMost_FreeMovement.OnInputDetected()// OnInputDetected() Call it if the input already provides direction// This method will move the object toward the input directionMost_FreeMovement.OnExeedMinRange(Vector2 direction)// You have to call one of "On Start move" functions to enable moving__________________ On Direction Update __________________// Call it to update object direction // on controller direction updated// OnInputUpdated() Uses the absolute value of the input direction equal to 1// and the speed of the object is equal to the system speedMost_FreeMovement.OnInputUpdated(Vector2 direction)// OnRawValueUpdated() Uses the magnitude value of the input direction from 0 to 1// and the speed of the object is equal to the system speed * that magnitudeMost_FreeMovement.OnRawValueUpdated(Vector2 direction)__________________ On Direction Update __________________// Call it to enable dash move// OnSwipeDetected() controls the dash direction using the direction input// and send a warning message if there is no direction (just to let you know)Most_FreeMovement.OnSwipeDetected([Optional] Vector2 direction)// OnAutoSwipeDetected() the dash direction will become the current// object direction and in that case you have to enable rotation on the systemMost_FreeMovement.OnAutoSwipeDetected()__________________ On Stop Moving __________________// the default value for exceed = falseMost_FreeMovement.OnInputReleased([Optional] bool exceed)// Call it to stop object from moving // on controller release//_______________________________________________________________//// ReadOnly variable... Check if the Move system is active or notMost_FreeMovement.Enable; returnbool// ReadOnly variable... Quick checker if the object is moving right now or notMost_FreeMovement.IsMoving; returnbool// ReadOnly variable... Quick checker if the object is using the dash right now or notMost_FreeMovement.IsDashing; returnbool// Controls the moving part of the system if it enables (sends data) or notMost_FreeMovement.EnableMove; return or set bool// Controls the rotation part of the system if it enables (sends data) or notMost_FreeMovement.EnableDash; return or set bool// Controls the rotation part of the system if it enables (sends data) or notMost_FreeMovement.EnableRotation; return or set bool// the target direction of the movement systemMost_FreeMovement.MoveAxis return or set (TargetAxis.X_Y or TargetAxis.X_Z) ;// Movement Speed of the objectMost_FreeMovement.Speed; return or set float// Dashing SpeedMost_FreeMovement.DashSpeed; return or set float// the time that dash will be active inMost_FreeMovement.DashDuration; return or set float// Rotation speed of the objectMost_FreeMovement.RotationSpeed; return or set float