UE4C++在编辑器工具栏按钮插件中添加一个可输入文本
时间: 2024-11-13 12:20:13 浏览: 25
在UE4(Unreal Engine 4)中,使用C++开发编辑器工具栏按钮插件并添加一个可输入文本框,可以通过以下步骤实现:
1. **创建一个新的C++类**:
- 打开UE4编辑器,导航到“编辑”菜单,选择“插件”,然后点击“新建C++类”。
- 选择“Actor”作为父类,并为你的类命名。例如,命名为`MyToolbarButton`。
2. **修改头文件**:
- 打开生成的`MyToolbarButton.h`文件,确保它继承自`SToolBarButton`。
```cpp
#pragma once
#include "CoreMinimal.h"
#include "Modules/ModuleManager.h"
#include "Widgets/SToolBarButton.h"
#include "Widgets/Input/SEditableTextBox.h"
class FMyToolbarButton : public SToolBarButton
{
GENERATED_BODY()
public:
TSharedPtr<SEditableTextBox> EditableTextBox;
virtual TSharedRef<SWidget> GetCustomContent() override;
};
```
3. **实现自定义内容**:
- 打开生成的`MyToolbarButton.cpp`文件,实现`GetCustomContent`方法。
```cpp
#include "MyToolbarButton.h"
TSharedRef<SWidget> FMyToolbarButton::GetCustomContent()
{
// 创建一个可编辑的文本框
EditableTextBox = SNew(SEditableTextBox)
.Text(FText::FromString("默认文本"))
.OnTextChanged(this, &FMyToolbarButton::OnTextChanged);
return EditableTextBox.ToSharedRef();
}
void FMyToolbarButton::OnTextChanged(const FText& NewText)
{
// 处理文本变化事件
UE_LOG(LogTemp, Log, TEXT("文本已更改为: %s"), *NewText.ToString());
}
```
4. **注册工具栏按钮**:
- 打开你的插件模块的`.Build.cs`文件,确保你的工具栏按钮被正确注册。
```cpp
public class FMyPluginModule : IModuleInterface
{
public:
virtual void StartupModule() override
{
FLevelEditorModule& LevelEditorModule = FModuleManager::LoadModuleChecked<FLevelEditorModule>("LevelEditor");
TSharedPtr<FExtender> ToolbarExtender = MakeShareable(new FExtender);
ToolbarExtender->AddToolBarExtension("Compile", EExtensionHook::After, LevelEditorModule.GetToolBarExtensibilityManager()->GetAllExtenders(), FToolBarExtensionDelegate::CreateStatic(&FMyToolbarButton::MakeToolbarButton));
LevelEditorModule.GetToolBarExtensibilityManager()->AddExtender(ToolbarExtender);
}
virtual void ShutdownModule() override
{
FLevelEditorModule& LevelEditorModule = FModuleManager::LoadModuleChecked<FLevelEditorModule>("LevelEditor");
LevelEditorModule.GetToolBarExtensibilityManager()->RemoveExtender(ToolbarExtender);
}
private:
TSharedPtr<FExtender> ToolbarExtender;
};
```
5. **编译和运行插件**:
- 保存所有更改,然后在UE4编辑器中编译你的插件。
- 启动UE4编辑器,你应该能够在工具栏上看到你的自定义按钮,并且该按钮包含一个可输入的文本框。
通过以上步骤,你可以在UE4编辑器的工具栏中添加一个带有可输入文本框的按钮插件。
阅读全文