Fix 3D character snap on moving platforms
Applying the platform velocity when leaving the platform floor should be done after snapping to keep things consistent, like it's done in 2D.
This commit is contained in:
parent
913a7a63d5
commit
2084bb5eb9
1 changed files with 5 additions and 5 deletions
|
@ -1176,11 +1176,6 @@ bool CharacterBody3D::move_and_slide() {
|
|||
}
|
||||
}
|
||||
|
||||
if (!on_floor && !on_wall) {
|
||||
// Add last platform velocity when just left a moving platform.
|
||||
linear_velocity += current_floor_velocity;
|
||||
}
|
||||
|
||||
if (was_on_floor && snap != Vector3()) {
|
||||
// Apply snap.
|
||||
Transform3D gt = get_global_transform();
|
||||
|
@ -1213,6 +1208,11 @@ bool CharacterBody3D::move_and_slide() {
|
|||
}
|
||||
}
|
||||
|
||||
if (!on_floor && !on_wall) {
|
||||
// Add last platform velocity when just left a moving platform.
|
||||
linear_velocity += current_floor_velocity;
|
||||
}
|
||||
|
||||
return motion_results.size() > 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue