浏览代码

Merge pull request #51743 from fabriceci/3x-avoid-useless-snap

[3.x] Avoid useless call to move and collide during snapping
Rémi Verschelde 4 年之前
父节点
当前提交
dc1b18e832
共有 2 个文件被更改,包括 2 次插入2 次删除
  1. 1 1
      scene/2d/physics_body_2d.cpp
  2. 1 1
      scene/3d/physics_body.cpp

+ 1 - 1
scene/2d/physics_body_2d.cpp

@@ -1212,7 +1212,7 @@ Vector2 KinematicBody2D::move_and_slide_with_snap(const Vector2 &p_linear_veloci
 	bool was_on_floor = on_floor;
 
 	Vector2 ret = move_and_slide(p_linear_velocity, up_direction, p_stop_on_slope, p_max_slides, p_floor_max_angle, p_infinite_inertia);
-	if (!was_on_floor || p_snap == Vector2()) {
+	if (!was_on_floor || p_snap == Vector2() || on_floor) {
 		return ret;
 	}
 

+ 1 - 1
scene/3d/physics_body.cpp

@@ -1172,7 +1172,7 @@ Vector3 KinematicBody::move_and_slide_with_snap(const Vector3 &p_linear_velocity
 	bool was_on_floor = on_floor;
 
 	Vector3 ret = move_and_slide(p_linear_velocity, up_direction, p_stop_on_slope, p_max_slides, p_floor_max_angle, p_infinite_inertia);
-	if (!was_on_floor || p_snap == Vector3()) {
+	if (!was_on_floor || p_snap == Vector3() || on_floor) {
 		return ret;
 	}