diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2022-07-30 18:22:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-30 18:22:52 +0200 |
commit | cca072aa8672633a235e9187ee6873d9f165e003 (patch) | |
tree | c8e762aa5016c0674102344aba4d0d3dc0f63464 | |
parent | 5595f2406a743a5a8f85d7e5642efa3c5ca18702 (diff) | |
parent | 2f46749f4e53420894f648873e01fd91ce8bcf3f (diff) |
Merge pull request #63679 from PrecisionRender/master
Fix `ShapeCast3D` creating runtime shape in editor
-rw-r--r-- | editor/plugins/node_3d_editor_gizmos.cpp | 5 | ||||
-rw-r--r-- | scene/3d/shape_cast_3d.cpp | 8 |
2 files changed, 10 insertions, 3 deletions
diff --git a/editor/plugins/node_3d_editor_gizmos.cpp b/editor/plugins/node_3d_editor_gizmos.cpp index 5c66026c1b..0070226d40 100644 --- a/editor/plugins/node_3d_editor_gizmos.cpp +++ b/editor/plugins/node_3d_editor_gizmos.cpp @@ -2569,9 +2569,12 @@ void ShapeCast3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) { const Ref<StandardMaterial3D> material = shapecast->is_enabled() ? shapecast->get_debug_material() : get_material("shape_material_disabled"); - p_gizmo->add_lines(shapecast->get_debug_shape_vertices(), material); p_gizmo->add_lines(shapecast->get_debug_line_vertices(), material); + if (shapecast->get_shape().is_valid()) { + p_gizmo->add_lines(shapecast->get_debug_shape_vertices(), material); + } + p_gizmo->add_collision_segments(shapecast->get_debug_line_vertices()); } diff --git a/scene/3d/shape_cast_3d.cpp b/scene/3d/shape_cast_3d.cpp index df8bd7dfc9..ac804280fe 100644 --- a/scene/3d/shape_cast_3d.cpp +++ b/scene/3d/shape_cast_3d.cpp @@ -577,14 +577,18 @@ void ShapeCast3D::_update_debug_shape() { _create_debug_shape(); } + _update_debug_shape_vertices(); + + if (Engine::get_singleton()->is_editor_hint()) { + return; + } + MeshInstance3D *mi = static_cast<MeshInstance3D *>(debug_shape); Ref<ArrayMesh> mesh = mi->get_mesh(); if (!mesh.is_valid()) { return; } - _update_debug_shape_vertices(); - mesh->clear_surfaces(); Array a; |