开发手札:UnrealEngine编辑器开发
以前在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%移植工作量