diff --git a/editor/plugins/node_3d_editor_gizmos.cpp b/editor/plugins/node_3d_editor_gizmos.cpp index 085e8cddbea..7e98950f321 100644 --- a/editor/plugins/node_3d_editor_gizmos.cpp +++ b/editor/plugins/node_3d_editor_gizmos.cpp @@ -979,10 +979,11 @@ Ref EditorNode3DGizmoPlugin::get_material(const String &p_na Ref mat = materials[p_name][index]; - if (current_state == ON_TOP && p_gizmo->is_selected()) { + bool on_top_mat = mat->get_flag(StandardMaterial3D::FLAG_DISABLE_DEPTH_TEST); + + if (!on_top_mat && current_state == ON_TOP && p_gizmo->is_selected()) { + mat = mat->duplicate(); mat->set_flag(StandardMaterial3D::FLAG_DISABLE_DEPTH_TEST, true); - } else { - mat->set_flag(StandardMaterial3D::FLAG_DISABLE_DEPTH_TEST, false); } return mat;