??????以前在unity框架中開發了非常多實用且高頻使用的編輯器工具,現在準備把目前用得上工具移植到ue4中。
下面說明一下ue4開發編輯器工具的流程。
1.創建編輯器工具控件
2.在控件中創建一個Button和一個EditableText,用于測試
3.新建一個繼承UEditorUtilityWidget的類MyEditorUtilityWidget
4.開始編寫代碼控制Button和EditableText
// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"
#include "EditorUtilityWidget.h"
#include "Runtime/UMG/Public/UMG.h"
#include "MyEditorUtilityWidget.generated.h"/****/
UCLASS()
class MYUNREALCLRDEMO2_API UMyEditorUtilityWidget : public UEditorUtilityWidget
{GENERATED_BODY()public:UPROPERTY(meta = (BindWidget))UButton* Button_Log;UPROPERTY(meta = (BindWidget))UEditableText* EditableText_Log;virtual void NativeConstruct() override;private:UFUNCTION()void ButtonLogClick();
};
// Fill out your copyright notice in the Description page of Project Settings.#include "MyEditorUtilityWidget.h"void UMyEditorUtilityWidget::NativeConstruct()
{Super::NativeConstruct();if (Button_Log != nullptr){Button_Log->OnClicked.AddDynamic(this, &UMyEditorUtilityWidget::ButtonLogClick);}
}void UMyEditorUtilityWidget::ButtonLogClick()
{if (EditableText_Log != nullptr){EditableText_Log->SetText(FText::FromString(FString::Printf(TEXT("測試Editor開發"))));}
}
??????PS:只是簡單示例一下怎么運行,所以單純點一下按鈕打印一句文字
5.在編輯器工具控件中重置父類為自定義的MyEditorUtilityWidget
??????這一步很坑爹,我剛開始死活找不到MyEditorUtilityWidget選項,后面直接創建MyEditorUtilityWidget的藍圖類MyEUWBlueprint后,選項就出現了,這不純搞笑呢?c++類還不能直接繼承了…
6.右鍵選擇運行編輯器工具控件,則打開了編輯器窗口
??????7.最終可得運行效果
??????最后,移植功能最方便的還是AI翻譯,足以完成70%移植工作量