diff --git a/Source/MetaCoreEditor/Private/MetaCoreBuiltinEditorModule.cpp b/Source/MetaCoreEditor/Private/MetaCoreBuiltinEditorModule.cpp index 9a2252d..0452388 100644 --- a/Source/MetaCoreEditor/Private/MetaCoreBuiltinEditorModule.cpp +++ b/Source/MetaCoreEditor/Private/MetaCoreBuiltinEditorModule.cpp @@ -8051,7 +8051,20 @@ public: if (const auto componentRegistry = editorContext.GetModuleRegistry().ResolveService(); componentRegistry != nullptr) { for (const auto& descriptor : componentRegistry->GetComponentDescriptors()) { - if (descriptor.TypeId == "Transform" || descriptor.HasComponent(selectedObject)) { + if (descriptor.TypeId == "Transform") { + continue; + } + + bool anySelectedObjectCanReceiveComponent = false; + for (const MetaCoreId selectedId : editorContext.GetSelectedObjectIds()) { + const MetaCoreGameObject selectedGameObject = editorContext.GetScene().FindGameObject(selectedId); + if (selectedGameObject && !descriptor.HasComponent(selectedGameObject)) { + anySelectedObjectCanReceiveComponent = true; + break; + } + } + + if (!anySelectedObjectCanReceiveComponent) { continue; }