Skip to content

Commit 0c956e4

Browse files
committed
Merge pull request #86310 from jirisvd/fix-softbody-reload
Fix `SoftBody3D` pinned points breaking when reloading scene
2 parents d45f9d2 + bde8c59 commit 0c956e4

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

scene/3d/soft_body_3d.cpp

+7-1
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,13 @@ bool SoftBody3D::_set_property_pinned_points_attachment(int p_item, const String
218218

219219
if ("spatial_attachment_path" == p_what) {
220220
PinnedPoint *w = pinned_points.ptrw();
221-
callable_mp(this, &SoftBody3D::_pin_point_deferred).call_deferred(Variant(w[p_item].point_index), true, p_value);
221+
222+
if (is_inside_tree()) {
223+
callable_mp(this, &SoftBody3D::_pin_point_deferred).call_deferred(Variant(w[p_item].point_index), true, p_value);
224+
} else {
225+
pin_point(w[p_item].point_index, true, p_value);
226+
_make_cache_dirty();
227+
}
222228
} else if ("offset" == p_what) {
223229
PinnedPoint *w = pinned_points.ptrw();
224230
w[p_item].offset = p_value;

0 commit comments

Comments
 (0)