UE4_用户控件_2_按钮的动态效果

效果展示:

操作步骤:

 1、新建一个触发Actor,更名为BP_EventTrigger。

这个蓝图类可以拖拽到场景中好多次,生成好多实例。但是我希望每次触发创建的用户控件都是不同的。添加Capsule Collision。

修改胶囊体半高和半径都为156

BP_EventTrigger事件图表中添加“事件Actor开始重叠”事件。

添加一个布尔变量display,编译,设置默认值为true。

2、新建个角色类,只用于行走,不需要骨骼网格体。

让角色具有行动能力

因为我们创建的角色不具备控制行走的事件,同时添加一个变量HUDActive控制是否具有行动能力。

这儿的事件还是使用的第三人称角色中的输入:

删除场景中默认的角色,测试下:

现在能够正常控制角色了。

3、新建个GameMode,并把默认pawn类设置为新建角色BP_My_Character。

4、世界场景设置,选择上面的gamemode。

5、、新建个拥有退出按钮的用户控件UMG_Exit,角色蓝图的“事件开始运行”创建用户控件UMG_Exit。

设置按钮的锚点和位置,如下图:

在按钮上添加个文字Exit,修改颜色为黑色,效果如下图:

<think>根据用户查询:"我想查找UE5蓝图中用户控件按钮控件共同的父类",我需要确定用户控件(User Widget)和按钮控件(如Button控件)在UE5蓝图中的共同父类。 回顾引用内容: 引用[1]中提到控件蓝图(Widget Blueprint),并说明可以通过Create Widget和Add to Viewport添加到场景中。 引用[2]中提到在C++父类中获取蓝图子类的属性,使用了BindWidget标签,这涉及到控件类的继承关系。 引用[3]提到HUD和UMG的关系,其中UMG是具体的界面内容,控件蓝图是UMG的一部分。 引用[4]展示了在控件蓝图中处理按钮事件和切换效果。 在UE5中,用户控件通常指的是通过控件蓝图(Widget Blueprint)创建的控件,其基类是UUserWidget。而按钮控件(如UButton)是UE5内置的控件类型。 我们需要找到用户控件(即UUserWidget)和按钮控件(如UButton)的共同父类。在UE5的UMG框架中,所有控件都继承自UWidget类。但是,UUserWidget本身是一个容器控件,可以包含其他控件(如按钮、文本框等),而按钮控件(UButton)则是一个基本的交互控件。 查看UE5的类继承结构: - UObject(基类) - UWidget(所有控件的基类) - UPanelWidget(面板控件,可以包含子控件的容器) - UUserWidget(用户控件,通常作为控件的根容器) - UButton(按钮控件)也是直接继承自UWidget(具体来说,UButton的继承链:UWidget -> UButtonBase -> UButton) 因此,UUserWidget和UButton的共同父类应该是UWidget。因为: - UUserWidget继承自UPanelWidget,而UPanelWidget又继承自UWidget。 - UButton继承自UButtonBase,而UButtonBase继承自UWidget。 所以,它们共同的父类就是UWidget。 但是,注意用户查询的是“蓝图里”的共同父类。在蓝图中,当我们创建控件蓝图时,其父类是UserWidget(即UUserWidget的蓝图可用类)。而按钮控件在蓝图中是一个单独的控件,可以直接拖拽到控件蓝图中使用。在蓝图中,我们通常不会直接看到UWidget这个基类,因为它是抽象的。 然而,从类的继承关系上看,它们确实都继承自UWidget。 因此,回答应该是:用户控件(UserWidget)和按钮控件(Button)在UE5蓝图中的共同父类是UWidget。 但请注意,在蓝图中,我们通常不直接操作UWidget,而是使用其派生类。 为了确保准确性,我们可以参考UE5官方文档的类继承图,但根据提供的引用和UE5的UMG结构,这个结论是合理的。 另外,引用[2]中提到了在C++父类中使用BindWidget来绑定子类的控件属性,这也说明在C++层面,这些控件都是UWidget的派生类,所以才能通过父类(UUserWidget)来引用子控件(如UButton)。 因此,回答如下: </think>在UE5蓝图系统中,用户控件(User Widget)和按钮控件(Button)的共同父类是 **`UWidget`**,具体继承关系如下: ### 类继承结构 1. **用户控件(如控件蓝图)** `UObject` → `UWidget` → `UPanelWidget` → **`UUserWidget`** - 用户控件通过控件蓝图创建,作为容器承载其他子控件(如按钮、文本等)[^1][^3] 2. **按钮控件(Button)** `UObject` → `UWidget` → **`UButton`** - 按钮是基础交互控件,可直接添加到用户控件中作为子元素[^2][^4] ### 关键说明 - **`UWidget` 的核心作用**: 作为所有UMG控件的基类,定义了控件的通用属性和行为(如渲染、事件处理、布局等)[^1][^2][^3]。在代码层面,任何控件(包括用户控件按钮)都直接或间接继承自 `UWidget`。 - **蓝图中的实际应用**: - 用户控件(`UUserWidget`)通过控件蓝图创建,作为界面容器 - 按钮(`UButton`)作为子控件嵌套在用户控件内 ```mermaid graph TD A[UWidget] --> B[UPanelWidget] A --> C[UButton] B --> D[UUserWidget] D --> E[控件蓝图] E --> F[包含UButton等子控件] ``` - **代码层面的验证**(C++父类引用子控件): 通过 `BindWidget` 元标签,可在 `UUserWidget` 派生类中绑定其包含的 `UButton` 控件,这依赖于二者共享的 `UWidget` 基类特性[^2]。 > ⚠️ **注意**:在蓝图中直接操作的是具体控件类(如 `UserWidget` 或 `Button`),但它们的底层共同父类始终是 `UWidget`。 --- ### 相关问题 1. 如何在UE5控件蓝图中动态创建并管理按钮控件2. `UWidget` 基类提供了哪些所有控件通用的核心功能? 3. 在C++中继承 `UUserWidget` 时,如何安全地访问其包含的子控件(如按钮)? 4. UE5的控件渲染顺序如何影响按钮和容器的显示效果?[^1][^4] [^1]: UE5 WidgetBluePrint蓝图控件渲染流程解析 [^2]: UMG C++父类绑定蓝图子类属性 [^3]: UE5控件蓝图基础应用 [^4]: UE5蓝图实现tab显示隐藏切换效果
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Growthofnotes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值