diff --git a/editor/docks/scene_tree_dock.cpp b/editor/docks/scene_tree_dock.cpp index f20f647d642..fe9502b5a01 100644 --- a/editor/docks/scene_tree_dock.cpp +++ b/editor/docks/scene_tree_dock.cpp @@ -4207,7 +4207,7 @@ void SceneTreeDock::attach_shader_to_selected(int p_preferred_mode) { } String path = selected_shader_material->get_path(); - if (path.is_empty()) { + if (path.get_base_dir().is_empty()) { String root_path; if (editor_data->get_edited_scene_root()) { root_path = editor_data->get_edited_scene_root()->get_scene_file_path(); @@ -4218,6 +4218,9 @@ void SceneTreeDock::attach_shader_to_selected(int p_preferred_mode) { } else { shader_name = selected_shader_material->get_name(); } + if (shader_name.is_empty()) { + shader_name = "new_shader"; + } if (root_path.is_empty()) { path = String("res://").path_join(shader_name); } else { diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 8090196b41f..0a541a92dde 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -1690,7 +1690,7 @@ void EditorNode::save_resource_as(const Ref &p_resource, const String file->set_current_file(String()); } } - } else if (!p_resource->get_path().is_empty()) { + } else if (!p_resource->get_path().get_base_dir().is_empty()) { file->set_current_path(p_resource->get_path()); if (!extensions.is_empty()) { const String ext = p_resource->get_path().get_extension().to_lower();