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

Fix strange visual bug with camera and external change.

ajreckof преди 1 година
родител
ревизия
609559c074
променени са 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());
 		new_scene->set_scene_file_path(edited_scene[p_idx].root->get_scene_file_path());
 		Node *old_root = edited_scene[p_idx].root;
 		Node *old_root = edited_scene[p_idx].root;
+		edited_scene.write[p_idx].root = new_scene;
 		old_root->replace_by(new_scene, false, false);
 		old_root->replace_by(new_scene, false, false);
 		memdelete(old_root);
 		memdelete(old_root);
 		edited_scene.write[p_idx].selection = new_selection;
 		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) {
 		if (old_edited_scene_root->get_parent() == scene_root) {
 			scene_root->remove_child(old_edited_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);
 	get_editor_data().set_edited_scene_root(p_scene);