How to sprint but only when moving forward?

Hi there, I haven’t got much time so I’ll make this quick. For the life of me I can’t figure out an optimal way to make the player sprint when only moving forward, so they are not able to sprint left/right or backwards. The only way I can think of doing this is to go ahead and create two four separate axis (Up, Down, Left, Right) and then use if checks for it. I’ll attach a picture what shows what I mean if you can’t understand me (My fault, sorry)18025-rundirection.png

The following code is what I have so far for switching between walk/speed variables.

speed = Input.GetButton("Sprint") ? runSpeed : walkSpeed;

I know it’s fairly simple, but I just can’t figure out a way to go about this.

2 Answers

2

Wouldn’t it simply be along the lines of:

speed = walkSpeed;

if(Input.GetButton("Sprint") && Input.GetAxis("Vertical") > 0)
speed = runSpeed;

That way your player can sprint diagonally as well (which it looks like form your picture, if you don’t want that then just check the Horizontal axis == 0 as well)

Wow sorry, I feel really stupid now, haha. Thanks heaps, Such a simple fix :3. Thank you once again.

–

No worries! :)

–

How do you get the input? Simply check if the input for going sideways is 0. If so, then you are running straight.