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

目录

前言

效果

步骤

一、显示根节点 

二、显示子节点


前言

我们在视口中添加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.mzph.cn/pingmian/53120.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[STM32]从零开始的STM32标准库环境搭建(小白向)

一、我们为什么要搭建STM32标准库开发环境 如果你对STM32有一定的了解,相信你已经认识了STM32的几种开发方式。基于STM32寄存器开发,基于ST官方的标准库开发,基于ST官方的HAL库开发。我们现在来了解一下这些库的优缺点。首先就是基于寄存器开…

macos USB外接键盘ctrl键绑定方法 解决外接USB键盘与mac键盘不一致问题

mac电脑外接USB键盘后我们需要修改一下 ctrl键的绑定后才符合我们的使用习惯,因为标准USB键盘和mac键盘上面的ctrl键是不一样的, mac上面的 command 键 对应我们USB键盘上面的 ctrl 键. 修改方法: 偏好设置 --> 键盘 点击修饰键 后 选择键盘里面选择 USB键盘 ,然后调换…

Leetcode JAVA刷刷站(111)二叉树的最小深度

一、题目概述 二、思路方向 在Java中,要找出二叉树的最小深度,我们可以使用递归的方法。基本思路是,对于给定的根节点,如果它是空的,那么最小深度为0(但实际上,空树没有深度,但在…

django之ForeignKey、OneToOneField 和 ManyToManyField

在Django中,ForeignKey、OneToOneField 和 ManyToManyField 是用于定义模型之间关系的字段类型。 ForeignKey ForeignKey 用于定义多对一的关系。例如,一个Employee可以属于一个Department,一个Department可以有多个Employee。 from djang…

Sui Hacker House曼谷站报名开启:在Devcon 2024期间探索Sui区块链创新

Sui 曼谷 Hacker House 报名开启 Sui Bangkok Hacker House 将在曼谷于 2024 年 11 月 4 日至 17 日举办。诚邀开发者深入学习 Move 语言,在 Sui 网络上构建 MVP ,在充满活力的曼谷中度过难忘的两周。 诚挚地邀请开发者加入为期两周的 Sui Bangkok Hacker House。 你将与其他…

构建全景式智慧文旅生态:EasyCVR视频汇聚平台与AR/VR技术的深度融合实践

在科技日新月异的今天,AR(增强现实)和VR(虚拟现实)技术正以前所未有的速度改变着我们的生活方式和工作模式。而EasyCVR视频汇聚平台,作为一款基于云-边-端一体化架构的视频融合AI智能分析平台,可…

Docker数据卷创建、挂载、删除、数据共享

在创建 docker 的镜像和容器后,还需要对容器进行数据管理,以便能与主机、不同容器之间进行交换数据。 本文主要介绍如何通过数据卷的方式实现多个容器间的数据共享和交换。 了解docker数据卷 docker 数据卷(Data Volume)是一个…

ubuntu 常见问题的收录

在使用过程中,发现ubuntu的问题一点不必windows少。因为每次遇到问题都需要要上网找,所以收集起来之后就会方便一些。 版本体验 24.04:整体的风格大变样,更趋近于“现代化”?反正我是更喜欢了 😄。就着风…

C语言 ——— 宏和##的使用

目录 ##的作用 宏和##的使用 ##的作用 ##可以把位于它两边的符号合成一个符号它允许宏定义从分离的文本片段创建标识符 宏和##的使用 代码演示&#xff1a; #include<stdio.h>#define CAT(x,y) x##yint main() {int RecepInteger 2024;printf("%d\n",CAT…

使用Cloudflare构建RAG应用;端到端语音开源大模型;AI幻灯片生成器,等六个开源项目

✨ 1: Cloudflare RAG 如何使用Cloudflare构建一个完整的RAG应用&#xff0c;结合多种搜索技术和AI服务。 Cloudflare RAG&#xff08;Retrieval Augmented Generation&#xff09;是一个全栈示例&#xff0c;展示如何使用 Cloudflare 构建 RAG 应用程序。该项目结合了 Cloud…

华为云Flexus云服务器X实例与AI大模型融合实践:打造高效智能应用

华为云Flexus云服务器X实例与AI大模型融合实践&#xff1a;打造高效智能应用 在云计算与人工智能快速发展的今天&#xff0c;企业对于高效、智能的云服务需求日益增长。华为云&#xff0c;作为全球领先的云服务提供商&#xff0c;凭借其强大的技术实力和丰富的行业经验&#x…

2.6 大模型数据基础:大模型评估数据详解

本系列目录 《带你自学大语言模型》系列部分目录及计划&#xff0c;完整版目录见&#xff1a;带你自学大语言模型系列 —— 前言 第一部分 走进大语言模型&#xff08;科普向&#xff09; 第一章 走进大语言模型 1.1 从图灵机到GPT&#xff0c;人工智能经历了什么&#xff1…

Unity教程(十三)敌人状态机

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程&#xff08;零&#xff09;Unity和VS的使用相关内容 Unity教程&#xff08;一&#xff09;开始学习状态机 Unity教程&#xff08;二&#xff09;角色移动的实现 Unity教程&#xff08;三&#xff09;角色跳跃的实现 Unity教程&…

快排的深入学习

目录 交换类排序 一、冒泡排序 1. 算法介绍 2.算法流程 3. 算法性能分析 &#xff08;1&#xff09;时间复杂度分析 &#xff08;2&#xff09; 空间复杂度分析 冒泡排序的特性总结&#xff1a; 二、快速排序 1.算法介绍 2. 执行流程 1). hoare版本 2). 挖坑法 3)…

阿里达摩院:FunASR语音识别

阿里达摩院:FunASR语音识别 github&#xff1a; https://github.com/modelscope/FunASR/ 1 clone 代码到本地&#xff0c;切换到 FunASR/ git clone https://github.com/alibaba/FunASR.git && cd FunASR2 虚拟环境 conda create -p ./venv python3.12 conda activ…

python---爬取QQ音乐

如Cookie为非vip&#xff0c;仅能获取非vip歌曲 1.下载包 pip install jsonpath 2.代码 import os import time import requests from jsonpath import jsonpathdef search_and_download_qq_music(query_text):headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; …

使用 scikit-learn 实战感知机算法

一 引言 感知机&#xff08;Perceptron&#xff09;是最早的人工神经网络模型之一&#xff0c;由 Frank Rosenblatt 在 1957 年提出。虽然它相对简单&#xff0c;但在处理线性可分问题时却非常有效。本文将介绍如何使用 Python 的 scikit-learn 库来实现感知机&#xff0c;并通…

uniapp使用defineExpose暴露和onMounted访问

defineExpose作用 暴露方法和数据 允许从模板或其他组件访问当前组件内部的方法和数据。明确指定哪些方法和数据可以被外部访问&#xff0c;从而避免不必要的暴露。 增强安全性 通过显式声明哪些方法和数据可以被外部访问&#xff0c;防止意外修改内部状态。提高组件的安全性&a…

828华为云征文|华为云Flexus X实例docker部署srs6并调优,协议使用webrtc与rtmp

828华为云征文&#xff5c;华为云Flexus X实例docker部署srs6并调优&#xff0c;协议使用webrtc与rtmp 华为云最近正在举办828 B2B企业节&#xff0c;Flexus X实例的促销力度非常大&#xff0c;特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务…

React 更新界面

文章目录 发现宝藏引入 useState声明和使用状态多个组件的状态管理解析代码 状态的局部性和性能优化结论 发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【宝藏入口】。 在 React 中&#xff…