优点:
缺点:
分析
-Slate都继承于SWidget。
class SLATECORE_API SWidget
: public FSlateControlledConstruction, //控制Slate生命周期,通过FMemory封装了生成和释放
public TSharedFromThis<SWidget> // Enables 'this->AsShared()'
{
friend struct FCurveSequence;//与Slate动画相关
public:
/**
* 初始化参数
*/
void Construct(
const TAttribute<FText>& InToolTipText,
const TSharedPtr<IToolTip>& InToolTip,
const TAttribute< TOptional<EMouseCursor::Type> >& InCursor,
const TAttribute<bool>& InEnabledState,
const TAttribute<EVisibility>& InVisibility,
const float InRenderOpacity,
const TAttribute<TOptional<FSlateRenderTransform>>& InTransform,
const TAttribute<FVector2D>& InTransformPivot,
const FName& InTag,
const bool InForceVolatile,
const EWidgetClipping InClipping,
const EFlowDirectionPreference InFlowPreference,
const TOptional<FAccessibleWidgetData>& InAccessibleData,
const TArray<TSharedRef<ISlateMetaData>>& InMetaData);
void SWidgetConstruct(const TAttribute<FText>& InToolTipText,
const TSharedPtr<IToolTip>& InToolTip,
const TAttribute< TOptional<EMouseCursor::Type> >& InCursor,
const TAttribute<bool>& InEnabledState,
const TAttribute<EVisibility>& InVisibility,
const float InRenderOpacity,
const TAttribute<TOptional<FSlateRenderTransform>>& InTransform,
const TAttribute<FVector2D>& InTransformPivot,
const FName& InTag,
const bool InForceVolatile,
const EWidgetClipping InClipping,
const EFlowDirectionPreference InFlowPreference,
const TOptional<FAccessibleWidgetData>& InAccessibleData,
const TArray<TSharedRef<ISlateMetaData>>& InMetaData);
......
小提示:
此示例包含创建插件、Slate自定义控件、样式以及语言本地化等。
TSharedRef HelloSlate =SNew(SHelloSlate);
TSharedPtr HelloSlate;
SAssignNew( HelloSlate, SHelloSlate);
由于在ue4中,TSharedRef可以直接转换为TSharedPtr,而TSharedPtr转化为TSharedRef需要用到AsShared() 函数,因此我们一般是先声明一个变量:
TSharedPtr<SHelloSlate> HelloSlate;
然后再实例化:
SNew(SHelloSlate);
SAssignNew(HelloSlate, SHelloSlate);
好了,未完待续。。。