diff --git a/scene/3d/visual_instance.cpp b/scene/3d/visual_instance.cpp index 539cd5ddb48..d6d8be962cf 100644 --- a/scene/3d/visual_instance.cpp +++ b/scene/3d/visual_instance.cpp @@ -97,7 +97,7 @@ void VisualInstance::_notification(int p_what) { } break; case NOTIFICATION_TRANSFORM_CHANGED: { - if (_is_vi_visible()) { + if (_is_vi_visible() || is_physics_interpolated_and_enabled()) { if (!_is_using_identity_transform()) { Transform gt = get_global_transform(); VisualServer::get_singleton()->instance_set_transform(instance, gt); @@ -105,10 +105,8 @@ void VisualInstance::_notification(int p_what) { } } break; case NOTIFICATION_RESET_PHYSICS_INTERPOLATION: { - if (_is_vi_visible()) { - if (is_physics_interpolated()) { - VisualServer::get_singleton()->instance_reset_physics_interpolation(instance); - } + if (_is_vi_visible() && is_physics_interpolated()) { + VisualServer::get_singleton()->instance_reset_physics_interpolation(instance); } } break; case NOTIFICATION_EXIT_WORLD: {