内容纲要
如何将名为“UPVPAlignSetting”的Config修饰符类列举出所有可配置的变量加入到Slate中呢?
如下,我们定义的Config修饰符类。
UCLASS(Config = Engine, DefaultConfig)
class PVPRENDER_API UPVPAlignSetting : public UObject
{
GENERATED_BODY()
public:
UPROPERTY(Config, BlueprintReadOnly, EditAnywhere, meta = (ContentDir, DisplayName = "Sequence路径"))
FDirectoryPath AssetSequencePath;
UPROPERTY(Config, BlueprintReadOnly, EditAnywhere, meta = (DisplayName = "外部视频路径"))
FDirectoryPath InputVideoPath;
};
在Slate类的h文件中,先定义好细节预览和具体的配置文件类。
TSharedPtr<IDetailsView>DetailsView;
class UPVPAlignSetting* Setting;
在Slate类的Construct函数中,修改DetailsView变量,并设置Object为配置文件类。
void SPVPAlign::Construct(const FArguments& InArgs)
{
//得到PropertyEditorModule模块
auto& PropertyModule = FModuleManager::LoadModuleChecked<FPropertyEditorModule>("PropertyEditor");
FDetailsViewArgs DetailsViewArgs;
//如下可以配置你想要的参数
//DetailViewArgs.XXX = XXX;
DetailsView = PropertyModule.CreateDetailView(DetailsViewArgs);
//给DetailsView设置Object
Setting = GetMutableDefault<UPVPAlignSetting>();
DetailsView->SetObject(Setting);
}
最后,直接将DetailsView.ToSharedRef()添加到Slate的窗体中。
ChildSlot
[
SNew(SVerticalBox)
+SVerticalBox::Slot()
.AutoHeight()
[
DetailsView.ToSharedRef()
]
]