2
0
Эх сурвалжийг харах

Fixed Timestep Interpolation: Fix behaviour on pause

Co-authored-by: lawnjelly <[email protected]>
Ricardo Buring 1 жил өмнө
parent
commit
ceadbaa299

+ 6 - 0
scene/2d/camera_2d.cpp

@@ -302,6 +302,12 @@ void Camera2D::_notification(int p_what) {
 			_interpolation_data.xform_prev = _interpolation_data.xform_curr;
 			_interpolation_data.xform_prev = _interpolation_data.xform_curr;
 		} break;
 		} break;
 
 
+		case NOTIFICATION_PAUSED: {
+			if (is_physics_interpolated_and_enabled()) {
+				_update_scroll();
+			}
+		} break;
+
 		case NOTIFICATION_TRANSFORM_CHANGED: {
 		case NOTIFICATION_TRANSFORM_CHANGED: {
 			if ((!position_smoothing_enabled && !is_physics_interpolated_and_enabled()) || _is_editing_in_editor()) {
 			if ((!position_smoothing_enabled && !is_physics_interpolated_and_enabled()) || _is_editing_in_editor()) {
 				_update_scroll();
 				_update_scroll();

+ 6 - 0
scene/main/node.cpp

@@ -177,6 +177,12 @@ void Node::_notification(int p_notification) {
 			}
 			}
 		} break;
 		} break;
 
 
+		case NOTIFICATION_PAUSED: {
+			if (is_physics_interpolated_and_enabled() && is_inside_tree()) {
+				reset_physics_interpolation();
+			}
+		} break;
+
 		case NOTIFICATION_PATH_RENAMED: {
 		case NOTIFICATION_PATH_RENAMED: {
 			if (data.path_cache) {
 			if (data.path_cache) {
 				memdelete(data.path_cache);
 				memdelete(data.path_cache);