【UE5】控件蓝图——树视图(TreeView)的基本使用

news/2024/9/19 1:06:30/ 标签: ue5

目录

前言

效果

步骤

一、显示根节点 

二、显示子节点


前言

我们在视口中添加1个方块,2个球体,5个圆柱

它们在大纲视图中的层级关系如下,那么如何将这种层级关系显示在树视图中是本篇文章要解决的问题。

效果

步骤

一、显示根节点 

1. 新建一个控件蓝图,这里命名为“WBP_TreeView”

打开“WBP_TreeView”,添加树视图控件

此时编译会报错,这是因为我们还没有指定条目控件类

2. 创建一个控件蓝图,这里命名为“WBP_Item”,作为条目控件类

打开“WBP_Item”,添加如下控件

在类设置中添加一个系统自带的蓝图接口“UserObjectListEntry”

3. 新建一个蓝图,父类为Object,命名为“Item”

打开“Item”,添加如下4个变量,其中“Depth”表示树视图的深度(这里包括根节点有3层因此Depth为2);“Child”表示根节点所包括的所有子节点,“Actor”表示根节点本身指代的Actor

4. 回到“WBP_Item”中,添加如下节点

5. 回到“WBP_TreeView”中,设置条目控件类为“WBP_Item”,此时可以看到树视图中有5个条目

在选中树视图控件后点击“创建绑定”

6. 回到“WBP_TreeView”中,在事件图表中添加如下节点,表示在树视图控件构建的时候获取场景中的静态网格体Cube,然后构建游戏对象“Item”,将Cube传入“Item”,最后将Item作为根节点添加到树视图中。

7. 在关卡蓝图中将控件显示出来

此时运行可以看到已经在树视图中显示了根节点

二、显示子节点

1. 打开“WBP_TreeView”,添加一个新函数,这里命名为“F_ActorRecursion”,表示对所有子节点所包括的Actor及这些Actor包括的所有子项进行递归

该函数添加如下两个输入

函数内容如下

在事件图表中调用函数“F_ActorRecursion”

之前我们已经为树视图创建了绑定函数,只要点击了树视图的节点时就会执行该函数。

在绑定函数“OnBP_OnGetItemChildren”中添加如下节点,表示点击了节点后来获取该节点的所有后代

2. 打开“WBP_Item”,给文本控件包裹一个水平框,然后添加间隔区

设置水平框靠左

将间隔区公开为变量

在事件图表中,当设置条目的名字时添加如下节点,根据条目所处的节点深度来设置间隔区的尺寸。

最终运行效果如下

参考视频:

UE5教程:UMG列表:树视图(TreeView)


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

相关文章

【设计模式】创建型模式——抽象工厂模式

抽象工厂模式 1. 模式定义2. 模式结构3. 实现3.1 实现抽象产品接口3.2 定义具体产品3.3 定义抽象工厂接口3.4 定义具体工厂3.5 客户端代码 4. 模式分析4.1 抽象工厂模式退化为工厂方法模式4.2 工厂方法模式退化为简单工厂模式 5. 模式特点5.1 优点5.2 缺点 6. 适用场景6.1 需要…

3.6 Browser -- useFullscreen

3.6 Browser – useFullscreen https://vueuse.org/useFullscreen 作用 响应式的Fullscreen API。可以让特定的元素占满屏幕&#xff0c;就是全屏的效果。 官方示例 const el ref<HTMLElement | null>(null)const { isFullscreen, enter, exit, toggle } useFulls…

【SpringMVC】

深入探索SpringMVC&#xff1a;构建高效、可维护的Web应用1. SpringMVC 核心概念1.1 模型&#xff08;Model&#xff09;1.2 视图&#xff08;View&#xff09;1.3 控制器&#xff08;Controller&#xff09; 2. SpringMVC 入门2.1 环境搭建2.2 配置前端控制器2.3 开发第一个Co…

25版王道数据结构课后习题详细分析 第五章 树与二叉树 5.3 二叉树的遍历和线索二叉树 选择题部分

一、单项选择题 ———————————————————— ———————————————————— 解析&#xff1a;二叉树中序遍历的最后一个结点一定是从根开始沿右子女指针链走到底的结点,设用p指示。若结点p不是叶结点(其左子树非空)&#xff0c;则前序遍历的最后一…

Windows10上Nginx如何通过自签名证书方式发布Https服务(下)

4.客户端证书生成 4.1 生成私钥 命令: openssl genrsa -des3 -out client.key 1024 4.2 创建 CSR(证书签名请求) 配置文件:client_openssl.cnf [req] distinguished_name = req_distinguished_name req_extensions = v3_req[req_distinguished_name] countryName …

nrm|npm快速切源

npm ERR! audit Your configured registry (https://registry.npmmirror.com/) does not support audit requests. 直接切源就 ok 了 全局安装 $npm i -g nrm查看所有源 $ nrm ls* npm -------- https://registry.npmjs.org/yarn ------- https://registry.yarnpkg.com/cnpm …

图像处理 -- 图像清晰度测量方法

图像清晰度测量方法 拉普拉斯算子&#xff08;Laplacian Operator&#xff09; 拉普拉斯算子是一种二阶导数算子&#xff0c;用于检测图像的边缘。清晰的图像通常具有更多且更明显的边缘。 边缘检测&#xff08;Edge Detection&#xff09; 常用的边缘检测算法包括Sobel、Prew…

深度学习100问39:阿达玛乘积在实际生活中的应用

嘿&#xff0c;你知道吗&#xff1f;阿达玛乘积在我们的生活中可有着不少神奇的应用呢&#xff01; 一、图像处理领域 在图像处理的世界里&#xff0c;阿达玛乘积就像是一个神奇的画笔。比如说图像融合吧&#xff0c;想象一下&#xff0c;你有两张超酷的照片&#xff0c;一…

成功解决:jenkins构建失败,cannot open directory /home/centos/: Permission denied等问题

这是报错: LANG=en_US.UTF-8 JOB_NAME=interface_automation_testing BUILD_DISPLAY_NAME=#25 BUILD_ID=25 NOTIFY_SOCKET=/run/systemd/notify JOB_BASE_NAME=interface_automation_testing GIT_PREVIOUS_SUCCESSFUL_COMMIT

EventBus使用详解

EventBus是一个由GreenRobot开发的开源库&#xff0c;主要用于Android和Java编程中的事件发布/订阅框架。它基于观察者模式&#xff0c;将事件的接收者和发送者分开&#xff0c;简化了组件之间的通信&#xff0c;使用简单、效率高、体积小。以下是对EventBus使用的详细解析&…

13 隔离性

数据库并发的场景 读-读&#xff1a;不存在任何问题&#xff0c;也不需要并发控制 读-写&#xff1a;有线程安全问题&#xff0c;可能会造成事务隔离性问题&#xff0c;可能遇到脏读&#xff0c;幻读&#xff0c;不可重复读 写-写&#xff1a;有线程安全问题&#xff0c;可能存…

VIVO 相机HDR拍照流程拆解

和你一起终身学习&#xff0c;这里是程序员Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: HDR 场景下发 3 帧拍照请求HDR 3帧拍照请求帧&#xff08;478,479 480&#xff09;HDR 3帧 result callback帧HDR 算法处理5.算法编解码处理HDR 拍照lo…

SpringMVC接收返回值方法汇总

传统方式 RequestMapping("/param01") public String param01(HttpServletRequest request) throws UnsupportedEncodingException {request.setCharacterEncoding("UTF-8");String id request.getParameter("id");request.setAttribute("…

Linux基础入门 --2 DAY

常见命令 查看硬件信息 查看cpu lscpu cat /proc/cpuinfo 范例&#xff1a; [rootlocalhost ~]# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 8 On-line CPU(s) list: 0-7 Thr…

Scipy||第三章 线性代数 (scipy.linalg)

3.1 矩阵操作的细节 3.1.1 矩阵的创建与基础运算 矩阵在 Scipy 中通常是以 Numpy 的 ndarray 形式表示的&#xff0c;这样便于进行高效的矩阵运算。我们再详细探讨几种常见的矩阵操作。 矩阵相加&#xff1a;矩阵相加要求两个矩阵的形状相同&#xff0c;元素逐个相加。 C A …

离线二维数点

问题&#xff1a;给你一个长度为n的序列&#xff0c;m次询问&#xff0c;每次询问区间[l,r]中小于等于x的元素个数。 对于此种问题&#xff0c;最简单的解法就是扫描线树状数组。这种问题满足离线性质&#xff0c;可以先把询问存下来&#xff0c;我们对原序列扫描&#xff0c;…

安达发|户外设备制造APS排程的多层级BOM订单拉动

户外设备制造行业面临的挑战包括多样化的产品线、复杂的产品开发过程以及市场需求的快速变化。为提高生产效率与市场响应速度&#xff0c;采用高级计划排程的多层级BOM订单拉动策略至关重要。 一、户外设备制造行业概述 - 行业背景&#xff1a;户外设备制造行业主要涉及户外休…

Mac 安装Hadoop教程

1. 引言 本教程旨在介绍在Mac 电脑上安装Hadoop&#xff0c;便于编程开发人员对大数据技术的熟悉和掌握。 2.前提条件 2.1 安装JDK 想要在你的Mac电脑上安装Hadoop&#xff0c;你必须首先安装JDK。具体安装步骤这里就不详细描述了。你可参考Mac 安装JDK8。 2.2 配置ssh环境…

缓存Mybatis一级缓存与二级缓存

缓存 为什么使用缓存 缓存(cache)的作用是为了减去数据库的压力,提高查询性能,缓存实现原理是从数据库中查询出来的对象在使用完后不销毁,而是存储在内存(缓存)中,当再次需要获取对象时,直接从内存(缓存)中提取,不再向数据库执行select语句,从而减少了对数据库的查询次数,因此…

Mac/Linux系统matplotlib中文支持问题

背景 matplotlib是python中最常用的数据可视化分析工具&#xff0c;Mac和Linux系统无中文字体&#xff0c;不支持中文显示&#xff08;希望后续可以改进&#xff09;&#xff0c;需要进行字体的下载和设置才能解决。笔者经过实践&#xff0c;发现Mac系统和Linux系统解决方案略…