Преглед на файлове

Add wakeup() conditional if previous gravity was 0

Brennen Green преди 3 години
родител
ревизия
37993f0c0c
променени са 2 файла, в които са добавени 6 реда и са изтрити 0 реда
  1. 3 0
      servers/physics_2d/godot_body_2d.cpp
  2. 3 0
      servers/physics_3d/godot_body_3d.cpp

+ 3 - 0
servers/physics_2d/godot_body_2d.cpp

@@ -185,6 +185,9 @@ void GodotBody2D::set_param(PhysicsServer2D::BodyParameter p_param, const Varian
 			_update_transform_dependent();
 			_update_transform_dependent();
 		} break;
 		} break;
 		case PhysicsServer2D::BODY_PARAM_GRAVITY_SCALE: {
 		case PhysicsServer2D::BODY_PARAM_GRAVITY_SCALE: {
+			if (Math::is_zero_approx(gravity_scale)) {
+				wakeup();
+			}
 			gravity_scale = p_value;
 			gravity_scale = p_value;
 		} break;
 		} break;
 		case PhysicsServer2D::BODY_PARAM_LINEAR_DAMP_MODE: {
 		case PhysicsServer2D::BODY_PARAM_LINEAR_DAMP_MODE: {

+ 3 - 0
servers/physics_3d/godot_body_3d.cpp

@@ -227,6 +227,9 @@ void GodotBody3D::set_param(PhysicsServer3D::BodyParameter p_param, const Varian
 			_update_transform_dependent();
 			_update_transform_dependent();
 		} break;
 		} break;
 		case PhysicsServer3D::BODY_PARAM_GRAVITY_SCALE: {
 		case PhysicsServer3D::BODY_PARAM_GRAVITY_SCALE: {
+			if (Math::is_zero_approx(gravity_scale)) {
+				wakeup();
+			}
 			gravity_scale = p_value;
 			gravity_scale = p_value;
 		} break;
 		} break;
 		case PhysicsServer3D::BODY_PARAM_LINEAR_DAMP_MODE: {
 		case PhysicsServer3D::BODY_PARAM_LINEAR_DAMP_MODE: {