ソースを参照

Make detach script non-destructive operation

Fix detach script not returning script's property values on undo.
aXu-AP 1 年間 前
コミット
e4db0bca73
1 ファイル変更8 行追加0 行削除
  1. 8 0
      editor/scene_tree_dock.cpp

+ 8 - 0
editor/scene_tree_dock.cpp

@@ -742,6 +742,14 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
 				if (existing != empty) {
 					undo_redo->add_do_method(n, "set_script", empty);
 					undo_redo->add_undo_method(n, "set_script", existing);
+
+					List<PropertyInfo> properties;
+					n->get_property_list(&properties);
+					for (const PropertyInfo &property : properties) {
+						if (property.usage & (PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_EDITOR)) {
+							undo_redo->add_undo_property(n, property.name, n->get(property.name));
+						}
+					}
 				}
 			}