Make sure stop on slope can have a tiny bit of precision edge.

This commit is contained in:
Juan Linietsky 2019-02-16 11:19:47 -03:00
parent f439b786ea
commit c54330c6b0
2 changed files with 2 additions and 2 deletions

View File

@ -1290,7 +1290,7 @@ Vector2 KinematicBody2D::move_and_slide(const Vector2 &p_linear_velocity, const
floor_velocity = collision.collider_vel;
if (p_stop_on_slope) {
if (Vector2() == lv_n + p_floor_direction && collision.travel.length() < 1) {
if ((lv_n + p_floor_direction).length() < 0.01 && collision.travel.length() < 1) {
Transform2D gt = get_global_transform();
gt.elements[2] -= collision.travel.project(p_floor_direction.tangent());
set_global_transform(gt);

View File

@ -1222,7 +1222,7 @@ Vector3 KinematicBody::move_and_slide(const Vector3 &p_linear_velocity, const Ve
floor_velocity = collision.collider_vel;
if (p_stop_on_slope) {
if (Vector3() == lv_n + p_floor_direction) {
if ((lv_n + p_floor_direction).length() < 0.01) {
Transform gt = get_global_transform();
gt.origin -= collision.travel;
set_global_transform(gt);