一些事件的委托聲明
UE4預定義了有些Widget相應時間如 FOnClicked
這個在檔案#include "Framework/SlateDelegates.h"中
同時我們還可以自定一些響應事件如:
DECLARE_DELEGATE_TwoParams(FOnMouseEnter, const FGeometry&, const FPointerEvent&)
DECLARE_DELEGATE_OneParam(FOnMouseLeave, const FPointerEvent&)
class STowerButtonWidget : public SCompoundWidget
{
public:
SLATE_BEGIN_ARGS(STowerButtonWidget)
{}
SLATE_EVENT(FOnClicked, OnClicked)
SLATE_EVENT(FOnClicked, OnClickedDisabled)
SLATE_EVENT(FOnMouseEnter, OnMouseEnterDel)
SLATE_EVENT(FOnMouseLeave, OnMouseLeaveDel)
SLATE_END_ARGS()
protected:
FOnClicked OnClicked;
FOnClicked OnClickedDisabled;
FOnMouseEnter OnMouseEnterDel;
FOnMouseLeave OnMouseLeaveDel;
};
然後通過重寫相應的事件方法,來達到調用自定義事件的目标
宏定義
BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION
END_SLATE_FUNCTION_BUILD_OPTIMIZATION
這兩個宏定義之間的代碼不會在編譯的時候進行優化,可以提升編譯的速度一般在UI中
都是包裹
這個方法
void Construct(const FArguments& InArgs)
關于SNew 和 SAssigneNew
SNew 傳回的是TSharedRef
SAssignNew 傳回的是TSharedPtr同時還要給他一個變量如
其中TitleContainer 是已經定義好的變量,SWeakWidget是要建立的元件類型
SAssignNew(TitleContainer, SWeakWidget)
要引用的頭檔案
在使用Slate架構時要引用
#include "SlateBasics.h"
這個頭檔案,不然編譯會出錯,
#include "SlateExtras.h"适用于向後相容的頭檔案,如果是老的項目,出現問題也可以引用試試