Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(3 edits) (+1)

edit: I’m sorry in advance for this long winded reply :p

Im gonna be making some assumptions about the way you programmed movement so keep that in mind. In Unity the Horizontal and Vertical axis from Input will give you a value between -1 and 1 depending on how long you press the correct input keys associated with each axis. When you let go of these keys, the value will “fall” towards zero at a rate defined in your project settings (the variable is called gravity which makes the whole concept a little confusing at first). What this means is that if you want to dash in a certain direction, lets say left, but your character is currently traveling up, then unless you give the directional axis some time to change form (0, 1) to (-1, 0) then your dash will instead be traveling in the direction (-0.3424, 0.8742). Now this wasn’t the best explanation in the world so I hope you at least get the idea here. For me, the dash felt clunky because I would try and very quickly dash in a direction opposite of my current movement direction, and instead of immediately dashing left or right or up or down I would dash somewhere between all of these Cardinal directions. Since the dash appears to use the same Vector as movement that means the behavior described above will be projected on the dash I’m trying to perform. i.e. bound your dash to the Cardinal directions. Or more simply, don’t use Input.GetAxis(“Horizontal”) or “Vertical” to determine which direction to dash in.