From c0e9dc1efe3f55ab79f38542ee0047da5a0a8fcb Mon Sep 17 00:00:00 2001 From: ayuan9957 <107920784+ayuan9957@users.noreply.github.com> Date: Mon, 22 Jun 2026 11:32:24 +0800 Subject: [PATCH] fix(editor): show missing components in multi-select inspector --- .../Private/MetaCoreBuiltinEditorModule.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) 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; }