Răsfoiți Sursa

Merge pull request #108117 from lawnjelly/fti_toplevel_resets3

[3.x] `FTI` - Add reset on setting `toplevel`
lawnjelly 2 luni în urmă
părinte
comite
2163855d6e
3 a modificat fișierele cu 3 adăugiri și 1 ștergeri
  1. 1 0
      scene/2d/canvas_item.cpp
  2. 1 0
      scene/3d/spatial.cpp
  3. 1 1
      scene/main/node.cpp

+ 1 - 0
scene/2d/canvas_item.cpp

@@ -724,6 +724,7 @@ void CanvasItem::set_as_toplevel(bool p_toplevel) {
 	_enter_canvas();
 
 	_notify_transform();
+	reset_physics_interpolation();
 }
 
 bool CanvasItem::is_set_as_toplevel() const {

+ 1 - 0
scene/3d/spatial.cpp

@@ -817,6 +817,7 @@ void Spatial::set_as_toplevel(bool p_enabled) {
 	} else {
 		data.toplevel = p_enabled;
 	}
+	reset_physics_interpolation();
 }
 
 bool Spatial::is_set_as_toplevel() const {

+ 1 - 1
scene/main/node.cpp

@@ -899,7 +899,7 @@ void Node::set_physics_interpolation_mode(PhysicsInterpolationMode p_mode) {
 }
 
 void Node::reset_physics_interpolation() {
-	if (is_inside_tree()) {
+	if (SceneTree::is_fti_enabled() && is_inside_tree()) {
 		propagate_notification(NOTIFICATION_RESET_PHYSICS_INTERPOLATION);
 
 		// If `reset_physics_interpolation()` is called explicitly by the user