- Home /
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)
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.
Answer by LaireonGames · Nov 17, 2013 at 12:35 PM
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.
Answer by fafase · Nov 17, 2013 at 12:38 PM
How do you get the input? Simply check if the input for going sideways is 0. If so, then you are running straight.
Your answer
Follow this Question
Related Questions
Making a bubble level (not a game but work tool) 1 Answer
Condition on Character Movement 1 Answer
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
How can I make an object in my scene jump continuously? 1 Answer