概述
本文主要讨论自定义细节面板的制作,包含显示分类及属性信息。
版本:420
模块:PropertyEditor
定制类型
-
默认布局
在C++中,只要你的属性以 UPROPERTY宏修饰且为常用类型,Editor系统将会为此属性创建一个默认布局。 -
自定义属性
当你创建一个自定义结构时,若想编辑器为其创建布局,必须以UStruct修饰;但若是你想为细节面板添加按钮,或其他定制化控件,以实现某些功能时,本文可以为你提供一个参考。
在IPropertyTypeCustomization的实现中,接口CustomizeHeader和CustomizeChildren提供了属性的扩展功能。我们需要创建IPropertyTypeCustomization的子类,如下:
//MyStructCustomization.h
#include "Editor/DetailCustomizations/Private/DetailCustomizationsPrivatePCH.h"
#pragma once
class FMyStructCustomization : public IPropertyTypeCustomization
{
public:
static TSharedRef<IPropertyTypeCustomization> MakeInstance();
/** IPropertyTypeCustomization interface */
virtual void CustomizeHeader(TSharedRef<class IPropertyHandle> StructPropertyHandle, class FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils) override;
virtual void CustomizeChildren(TSharedRef<class IPropertyHandle> StructPropertyHandle, class IDetailChildrenBuilder& StructBuilder, IPropertyTypeCustomizationUtils& StructCustomizationUtils) override;
private:
TSharedPtr<IPropertyHandle> SomeUPropertyHandle;
};
////MyStructCustomization.cpp
#include "DetailCustomizations/MyStructCustomization.h"
#define LOCTEX