Fix forward and backward motion when using on-screen touch joysticks. #4334
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The on-screen joysticks "stutter" when you try and go forward and back. This is caused by the Z component of velocity being inverted in order to map joystick-up to world-forward, but
this.displacement
is passed by reference so the Z component gets inverted back-and-forth every frame, the net effect of which is zero forward motion. Wiggling the joystick means thatthis.displacement
is set correctly every frame and overrides the inversion, so it's not immediately obvious there's a problem, but movement feels "sticky".Inverting the value when it was calculated seemed the most appropriate fix as the code is already making joystick-to-world-coordinate mapping assumptions there anyway.