瀏覽代碼

Keep 'Editor Description' metadata when changing a Node's type

Also copy edit group/lock when replacing a Node3D

(cherry picked from commit a22275c8a29b1ee00f4d2c89da8c452b72c84493)
Gabriel Van Eyck 5 年之前
父節點
當前提交
5b9c16a324
共有 1 個文件被更改,包括 6 次插入2 次删除
  1. 6 2
      editor/scene_tree_dock.cpp

+ 6 - 2
editor/scene_tree_dock.cpp

@@ -2128,8 +2128,12 @@ void SceneTreeDock::replace_node(Node *p_node, Node *p_by_node, bool p_keep_prop
 				continue;
 				continue;
 
 
 			if (E->get().name == "__meta__") {
 			if (E->get().name == "__meta__") {
-				if (Object::cast_to<CanvasItem>(newnode)) {
-					Dictionary metadata = n->get(E->get().name);
+				Dictionary metadata = n->get(E->get().name);
+				if (metadata.has("_editor_description_")) {
+					newnode->set_meta("_editor_description_", metadata["_editor_description_"]);
+				}
+
+				if (Object::cast_to<CanvasItem>(newnode) || Object::cast_to<Spatial>(newnode)) {
 					if (metadata.has("_edit_group_") && metadata["_edit_group_"]) {
 					if (metadata.has("_edit_group_") && metadata["_edit_group_"]) {
 						newnode->set_meta("_edit_group_", true);
 						newnode->set_meta("_edit_group_", true);
 					}
 					}