Files
UnrealEngine/Engine/Plugins/MetaHuman/MetaHumanCharacter/Source/MetaHumanCharacterEditor/Private/SMetaHumanPreviewSceneDetailCustomization.cpp
2025-05-18 13:04:45 +08:00

36 lines
1.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "SMetaHumanPreviewSceneDetailCustomization.h"
#include "DetailLayoutBuilder.h"
#include "DetailWidgetRow.h"
#include "SMetaHumanCharacterEditorPreviewSettingsView.h"
#include "IPropertyUtilities.h"
#include "IDetailGroup.h"
TSharedRef<IDetailCustomization> FMetaHumanPreviewSceneCustomization::MakeInstance()
{
return MakeShareable(new FMetaHumanPreviewSceneCustomization());
}
void FMetaHumanPreviewSceneCustomization::CustomizeDetails(IDetailLayoutBuilder& DetailBuilder)
{
TArray<TWeakObjectPtr<UObject>> Objects;
DetailBuilder.GetObjectsBeingCustomized(Objects);
if (Objects.Num() > 0)
{
TWeakObjectPtr<UObject> PreviewDescriptionObject = Objects[0];
TAttribute<bool> IsEnabled = TAttribute<bool>::Create([this, PreviewDescriptionObject]()
{
if (UMetaHumanCharacterEditorPreviewSceneDescription* PreviewDescription = Cast<UMetaHumanCharacterEditorPreviewSceneDescription>(PreviewDescriptionObject.Get()))
{
return PreviewDescription->bAnimationControllerEnabled;
}
return false;
});
IDetailCategoryBuilder& Category = DetailBuilder.EditCategory("Animation", FText::GetEmpty(), ECategoryPriority::Default);
TSharedPtr<IPropertyHandle> AnimationControllerHandle = DetailBuilder.GetProperty(GET_MEMBER_NAME_CHECKED(UMetaHumanCharacterEditorPreviewSceneDescription, AnimationController));
Category.AddProperty(AnimationControllerHandle).IsEnabled(IsEnabled);
}
}