Fix debug NavigationRegion3D colors not updating until project re-start

(cherry picked from commit 984e7379e2f096db9a2e62d1f8a81f9bf2570769)
This commit is contained in:
Gustavo Jaruga Cruz authored and Thaddeus Crews committed 2026-07-30 11:30:01 -05:00
1 parent e9ea372b8a
commit ddac71fd62
1 file changed
+33 -2
@@ -184,7 +184,23 @@ void NavigationRegion3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
}
debug_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, face_mesh_array);
p_gizmo->add_mesh(debug_mesh, navigationregion->is_enabled() ? get_material("face_material", p_gizmo) : get_material("face_material_disabled", p_gizmo));
const String face_material_name = navigationregion->is_enabled() ? "face_material" : "face_material_disabled";
Ref<StandardMaterial3D> face_material = get_material(face_material_name, p_gizmo);
if (navigationregion->is_enabled()) {
Color mat_color = NavigationServer3D::get_singleton()->get_debug_navigation_geometry_face_color();
if (!p_gizmo->is_selected()) {
mat_color.a *= 0.3;
}
face_material->set_albedo(mat_color);
} else {
Color mat_color = NavigationServer3D::get_singleton()->get_debug_navigation_geometry_face_disabled_color();
if (!p_gizmo->is_selected()) {
mat_color.a *= 0.3;
}
face_material->set_albedo(mat_color);
}
p_gizmo->add_mesh(debug_mesh, face_material);
// if enabled build geometry edge line surface
bool enabled_edge_lines = NavigationServer3D::get_singleton()->get_debug_navigation_enable_edge_lines();
@@ -203,6 +219,21 @@ void NavigationRegion3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
line_vertex_array.push_back(vertices[polygon[0]]);
}
p_gizmo->add_lines(line_vertex_array, navigationregion->is_enabled() ? get_material("edge_material", p_gizmo) : get_material("edge_material_disabled", p_gizmo));
const String line_material_name = navigationregion->is_enabled() ? "edge_material" : "edge_material_disabled";
Ref<StandardMaterial3D> line_material = get_material(line_material_name, p_gizmo);
if (navigationregion->is_enabled()) {
Color mat_color = NavigationServer3D::get_singleton()->get_debug_navigation_geometry_edge_color();
if (!p_gizmo->is_selected()) {
mat_color.a *= 0.3;
}
line_material->set_albedo(mat_color);
} else {
Color mat_color = NavigationServer3D::get_singleton()->get_debug_navigation_geometry_edge_disabled_color();
if (!p_gizmo->is_selected()) {
mat_color.a *= 0.3;
}
line_material->set_albedo(mat_color);
}
p_gizmo->add_lines(line_vertex_array, line_material);
}
}