瀏覽代碼

Merge pull request #90317 from ajreckof/Fix-strange-visual-bug-with-camera-and-external-change-

Fix strange visual bug with camera and external change.
Rémi Verschelde 1 年之前
父節點
當前提交
7fa4698475
共有 2 個文件被更改,包括 4 次插入1 次删除
  1. 1 0
      editor/editor_data.cpp
  2. 3 1
      editor/editor_node.cpp

+ 1 - 0
editor/editor_data.cpp

@@ -722,6 +722,7 @@ bool EditorData::check_and_update_scene(int p_idx) {
 
 		new_scene->set_scene_file_path(edited_scene[p_idx].root->get_scene_file_path());
 		Node *old_root = edited_scene[p_idx].root;
+		edited_scene.write[p_idx].root = new_scene;
 		old_root->replace_by(new_scene, false, false);
 		memdelete(old_root);
 		edited_scene.write[p_idx].selection = new_selection;

+ 3 - 1
editor/editor_node.cpp

@@ -3674,7 +3674,9 @@ void EditorNode::set_edited_scene(Node *p_scene) {
 		if (old_edited_scene_root->get_parent() == scene_root) {
 			scene_root->remove_child(old_edited_scene_root);
 		}
-		old_edited_scene_root->disconnect(SNAME("replacing_by"), callable_mp(this, &EditorNode::set_edited_scene));
+		if (old_edited_scene_root->is_connected("replacing_by", callable_mp(this, &EditorNode::set_edited_scene))) {
+			old_edited_scene_root->disconnect(SNAME("replacing_by"), callable_mp(this, &EditorNode::set_edited_scene));
+		}
 	}
 	get_editor_data().set_edited_scene_root(p_scene);