Fix crash on debug shapes update if CollisionObject is not in tree

Also fix ConcavePolygonShape not emitting the changed signal
This commit is contained in:
trollodel 2021-05-22 17:33:51 +02:00
parent 333dfb96da
commit 7043d6d1c6
2 changed files with 6 additions and 0 deletions

View file

@ -212,6 +212,11 @@ void CollisionObject::_shape_changed(const Ref<Shape> &p_shape) {
}
void CollisionObject::_update_debug_shapes() {
if (!is_inside_tree()) {
debug_shapes_to_update.clear();
return;
}
for (Set<uint32_t>::Element *shapedata_idx = debug_shapes_to_update.front(); shapedata_idx; shapedata_idx = shapedata_idx->next()) {
if (shapes.has(shapedata_idx->get())) {
ShapeData &shapedata = shapes[shapedata_idx->get()];

View file

@ -66,6 +66,7 @@ void ConcavePolygonShape::_update_shape() {
void ConcavePolygonShape::set_faces(const PoolVector<Vector3> &p_faces) {
PhysicsServer::get_singleton()->shape_set_data(get_shape(), p_faces);
_update_shape();
notify_change_to_owners();
}