Files
UnrealEngine/Engine/Plugins/Animation/ControlRig/Source/ControlRigEditor/Private/ControlRigBlueprintDetails.cpp
2025-05-18 13:04:45 +08:00

39 lines
1.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "ControlRigBlueprintDetails.h"
#include "ControlRigBlueprint.h"
#include "DetailLayoutBuilder.h"
#include "Rigs/RigHierarchy.h"
TSharedRef<IDetailCustomization> FControlRigBlueprintDetails::MakeInstance()
{
return MakeShareable(new FControlRigBlueprintDetails);
}
void FControlRigBlueprintDetails::CustomizeDetails(IDetailLayoutBuilder& DetailLayout)
{
bool bIsValidRigModule = CVarControlRigHierarchyEnableModules.GetValueOnAnyThread();
if(bIsValidRigModule)
{
bIsValidRigModule = false;
TArray<TWeakObjectPtr<UObject>> DetailObjects;
DetailLayout.GetObjectsBeingCustomized(DetailObjects);
for(TWeakObjectPtr<UObject> DetailObject : DetailObjects)
{
if(UControlRigBlueprint* Blueprint = Cast<UControlRigBlueprint>(DetailObject.Get()))
{
if(Blueprint->IsControlRigModule())
{
Blueprint->UpdateExposedModuleConnectors();
bIsValidRigModule = true;
}
}
}
}
if(!bIsValidRigModule)
{
DetailLayout.HideProperty(GET_MEMBER_NAME_CHECKED(UControlRigBlueprint, RigModuleSettings));
}
}