Hiding CSGShape should force the CSG operation to skip it which is intented behaviour according to how CSGBrush is created for each shape.
@@ -531,6 +531,13 @@ void CSGShape::_notification(int p_what) {
}
+ if (p_what == NOTIFICATION_VISIBILITY_CHANGED) {
+
+ if (parent) {
+ parent->_make_dirty();
+ }
if (p_what == NOTIFICATION_EXIT_TREE) {
if (parent)