You didn't say whether this is for a platformer. If you do something top-down, just ignore
I ran into so many issues with basic platformer-type movement in PlayMaker over time that I switched to scripting this particular system. Admittedly, some of that could be down to a slow notebook I used a while ago, but I did use pretty small and agile FSMs and yet there was always some annoying "lag". I could never get it to feel right (yes, I did test in builds). When there was no way to use the Input System, I eventually caved and scripted it. If you plan on a long game, I recommend that too. No regrets, it's great to be able to script some things now. There are some great resources out there for how to set up controllers and also complete scripts. (PlayMaker is still excellent for other things)
When you Set Velocity, you have the additional problem that it messes with the physics forces. If you have a simple platformer, this wouldn't be an issue, but it quickly becomes one when you want to use 2d physics (for momentum etc). So, for such cases, you have to "intelligently" switch states and carefully watch when Set Velocity is active (it's a very blunt tool, it just pastes over whatever the Rigidbody is doing). Especially watch out with overriding velocity Y. Many then wonder why their character doesn't get off the ground or behaves strangely in air.
The approach I use now is adding forces ~30ish and clamping velocity to something like 5. This allows to design the acceleration. I also once tried the Tween Action pack to accelerate using a curve (it's somewhere in the forum). That worked quite well, too.
There was no clamp velocity action at the time, so I made my own (I attach it below, but beware, it's just my own version I made back then). Just like with Set Velocity, you have to be very clear where it's active, but I think it should not interfere with physics forces acting on the rigidbody2D (needs to be tested).
If you use the old style Input Manager, I recommend using my GetAxisRaw action to fetch the axis. You also want to change the drag, and gravityscale values (for side-scrolling 2D).
There are some good tutorials on 2D Movement, among a lot of mediocre ones on YouTube. There's one decent one with Celeste style movement, but I found this one the
best, and that
one (however, ignore their ideas on momentum when turning: their approach doesn't actually work
.
Here are some links to my own (older) experiments with some example setups.
--
movement example with physics forces.--
GetAxisRaw