UE5 多个类选择界面生成

news/2024/9/18 15:03:25/ 标签: ue5

在Unreal Engine 5 (UE5) 中,如果你想要创建一个可以选择多个类的界面,你可以使用SClassPicker小部件。以下是一个简单的例子,展示如何在UE5的编辑器模块中创建一个自定义的编辑器工具栏按钮,并打开一个类选择器。

#include "ToolExampleEditor/Public/ToolExampleEditorModule.h"

#include "ToolExampleEditor/Public/ToolExampleEditorToolbar.h"

#include "EditorStyleSet.h"

#include "SClassPicker.h"

#include "IDetailsView.h"

#include "PropertyEditorModule.h"

#include "IDetailChildrenBuilder.h"

#include "DetailWidgetRow.h"

#include "DetailCategoryBuilder.h"

void FToolExampleEditorModule::AddToolbarExtension(FToolBarBuilder& Builder)

{

    Builder.AddToolBarButton(

        FUIAction(

            FExecuteAction::CreateRaw(this, &FToolExampleEditorModule::OnOpenClassPickerClicked),

            FCanExecuteAction()

        ),

        NAME_None,

        TAttribute<FText>(),

        TAttribute<FText>(),

        FSlateIcon(FEditorStyle::GetStyleSetName(), "ClassThumbnail.ClassIcon")

    );

}

void FToolExampleEditorModule::OnOpenClassPickerClicked()

{

    FSClassViewerInitializationOptions InitOptions;

    InitOptions.bShowNoneOption = true;

    InitOptions.bShowEngineClasses = true;

    InitOptions.bShowStableClasses = true;

    InitOptions.bShowUnstableClasses = true;

    // 打开类选择器并处理结果

    FClassViewerModule& ClassViewerModule = FModuleManager::LoadModuleChecked<FClassViewerModule>("ClassViewer");

    UClass* ChosenClass = ClassViewerModule.CreateClassViewer(InitOptions, TExtensibility::Get(), TSharedPtr<FClassViewerFilter>())->ShowClassViewer(

        TEXT("Select Class"),

        TEXT("Select a class"),

        UObject::StaticClass()

    );

    if (ChosenClass != nullptr)

    {

        // 使用选择的类

        FFormatNamedArguments Arguments;

        Arguments.Add(TEXT("ClassName"), FText::FromString(ChosenClass->GetName()));

        FMessageDialog::Open(EAppMsgType::Ok, FText::Format(LOCTEXT("ClassSelected", "Class {ClassName} selected."), Arguments));

    }

}

这段代码演示了如何在UE5编辑器模块中添加一个工具栏按钮,并在按钮点击事件中打开一个类选择器。当用户选择一个类后,会弹出一个消息框显示选择的类名。这个例子简单明了,并且提供了一个如何在UE5编辑器中集成类选择界面的实践方法。


http://www.ppmy.cn/news/1517049.html

相关文章

论文写作遇到的问题——个人记录用

1.实验结果图绘制 python画图字体设置 Science Plots使用中中文配置的问题 11种 Matplotlib 科研论文图表教程 2.论文写作格式 word公式居中、编号右对齐、自动编号、交叉引用 mathtype操作合集&#xff0c;使用大全 arxiv.org的文章引用格式 LaTex的下载与安装&#x…

[CLIP-VIT-L + Qwen] 多模态大模型源码阅读 - DataSet篇

[CLIP-VIT-L Qwen] 多模态大模型源码阅读 - DataSet篇 前情提要源码解读完整代码逐行解读导包readjson函数data_collate函数ImageCaptionDataset类&#xff08;init函数&#xff09;ImageCaptionDataset类&#xff08;readImage函数&#xff09; 参考repo:WatchTower-Liu/VLM-…

Java中Objecy类

没有成员变量 也就只有无参 的构造方法 /*** ClassName Test* author gyf* Date 2024/8/28 10:32* Version V1.0* Description : */ public class Test {public static void main(String[] args) {// toString()Object object new Object();System.out.println(object);String…

网络安全新视角:人工智能在防御中的最新应用

人工智能在网络安全中的最新应用 概述 人工智能&#xff08;AI&#xff09;在网络安全领域的应用正日益成熟&#xff0c;它通过机器学习和深度学习技术&#xff0c;为网络安全带来了革命性的变革。AI技术不仅能够自动化、智能化地检测、分析和应对安全威胁&#xff0c;还能够…

Jenkins:自动化的魔法师,打造无缝CI/CD流水线

标题&#xff1a;“Jenkins&#xff1a;自动化的魔法师&#xff0c;打造无缝CI/CD流水线” 在当今快速发展的软件开发领域&#xff0c;持续集成&#xff08;Continuous Integration, CI&#xff09;和持续部署&#xff08;Continuous Deployment, CD&#xff09;已经成为提升开…

Docker续1:

一、打包传输 1.打包 [rootlocalhost ~]# systemctl start docker [rootlocalhost ~]# docker save -o centos.tar centos:latest [rootlocalhost ~]# ls anaconda-ks.cfg centos.tar 2.传输 [rootlocalhost ~]# scp centos.tar root192.168.1.100:/root 3.删除镜像 [r…

总结:Python语法

Python中的字典、列表和数组是三种常用的数据结构&#xff0c;它们各自有不同的用途和特性。 字典&#xff08;Dictionary&#xff09; 字典是一种无序的、可变的数据结构&#xff0c;它存储键值对&#xff08;key-value pairs&#xff09;。字典中的每个元素都是一个键值对&…

flink--会话模式与应用模式

flink-会话模式部署 会话情况&#xff1a; 添加依赖 <properties><flink.version>1.17.2</flink.version> </properties> ​ <dependencies><dependency><groupId>org.apache.flink</groupId><artifactId>flink-strea…

CSS属性

一、CSS列表样式 1、list-style-type属性&#xff08;列表项标记&#xff09; CSS列表属性允许我们设置不同的列表项标记。 在HTML中&#xff0c;有​两种类型​的列表&#xff1a; ​无序列表​&#xff08;<ul>&#xff09; - 列表项目用​项目符号​标记​有序列表…

【Linux】自动化构建工具makefile

目录 背景 makefile简单编写 .PHONY makefile中常用选项 makefile的自动推导 背景 会不会写makefile&#xff0c;从一个侧面说明了一个人是否具备完成大型工程的能力 ​ ◉ 一个工程中的源文件不计数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…

开放式耳机怎么戴?佩戴舒适在线的几款开放式耳机分享

开放式耳机的佩戴方式与传统的入耳式耳机有所不同&#xff0c;它采用了一种挂耳式的设计&#xff0c;提供了一种新颖的佩戴体验&#xff0c;以下是开放式耳机的佩戴方式。 1. 开箱及外观&#xff1a;首先&#xff0c;从包装盒中取出耳机及其配件&#xff0c;包括耳机本体、充电…

使用 FinalShell 链接 Centos

1. 安装 FinalShell 下载地址&#xff1a;https://www.hostbuf.com/t/988.html 2. 查看 IP地址。 2.1 通过命令查询IP 输入 ip addr show 查询&#xff0c;输出效果如下截图&#xff0c;其中的 192.168.1.5 就是 IP 地址。 2.2 通过可视化界面查询IP 点击右上角的网络图标…

LoadBalancer负载均衡

一、概述 1.1、Ribbon目前也进入维护模式 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。 简单的说&#xff0c;Ribbon是Netflix发布的开源项目&#xff0c;主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的…

企业中需要哪些告警Rules

文章目录 企业中需要哪些告警Rules前言定义告警规则企业中的告警rulesNode.rulesprometheus.ruleswebsite.rulespod.rulesvolume.rulesprocess.rules 总结 企业中需要哪些告警Rules 前言 Prometheus中的告警规则允许你基于PromQL表达式定义告警触发条件&#xff0c;Prometheus…

poi word 添加水印

poi word 添加水印 依赖DocxUtil调用遇到的问题部分客户给的word无法添加水印水印文案 过长会导致字变小变形 超过一定长度就会显示异常。消失等情况 依赖 <!--poi-tl--><dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</art…

捕获神经网络的精髓:深入探索PyTorch的torch.jit.trace方法

标题&#xff1a;捕获神经网络的精髓&#xff1a;深入探索PyTorch的torch.jit.trace方法 在深度学习领域&#xff0c;模型的部署和优化是至关重要的环节。PyTorch作为最受欢迎的深度学习框架之一&#xff0c;提供了多种工具来帮助开发者优化和部署模型。torch.jit.trace是PyTo…

设计模式 10 外观模式

设计模式 10 创建型模式&#xff08;5&#xff09;&#xff1a;工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式结构型模式&#xff08;7&#xff09;&#xff1a;适配器模式、桥接模式、组合模式、装饰者模式、外观模式、享元模式、代理模式行为型模式&#xff…

ansible的tags标签

1、tags模块 可以给任务定义标签&#xff0c;可以根据标签来运行指定的任务 2、标签的类型 always&#xff1a;设定了标签名为always&#xff0c;除非指定跳过这个标签&#xff0c;否则该任务将始终会运行&#xff0c;即使指定了标签还会运行never&#xff1a;始终不运行的任…

CPU、MPU、MCU、SOC分别是什么?

CPU、MPU、MCU和SoC都是与微电子和计算机科学相关的术语&#xff0c;它们在功能定位、应用场景以及处理能力等方面有所区别。具体如下&#xff1a; CPU&#xff1a;CPU是中央处理单元的缩写&#xff0c;它通常指计算机内部负责执行程序指令的芯片。CPU是所有类型计算机&#x…

java 读取mysql中的表并按照指定格式导出excel

在Java中读取MySQL中的数据表并将其导出到Excel文件中&#xff0c;你需要以下几个步骤&#xff1a; 连接MySQL数据库&#xff1a;使用JDBC驱动程序连接到MySQL数据库。执行SQL查询&#xff1a;获取表数据。使用Apache POI库生成Excel文件&#xff1a;将数据写入Excel格式。保存…