Unreal UMG Event

Unreal5中,这些事件放在了FUNCTIONS(Override)中了。

请注意这些事件都是UI事件,有些事件的触发前提是鼠标悬停了UI空间上!

一、Event On Removed from Focus Path与Event On Add to Focus Path

Event On Add to Focus Path是开始聚焦于当前UMG界面可交互的UI控件时触发;

Event On Removed from Focus Path是从聚焦某个可交互UI控件到不聚焦于任何可交互控件时触发;

值得注意的是,当焦点从可交互UI控件之间切换的时候,以上两个事件都不触发;对于上述两个事件来说,所有的可交互UI控件是一体的。

二、On Preview Mouse Button Down

On Preview Mouse Button Down只要有鼠标(包含鼠标左键右键和中键)在UI控件上按下时都会触发,同时能获取各种信息。

三、On Preview Key Down

On Preview Key Down是当焦点聚焦于某个可交互的UI控件时,按下键盘上的某个键时触发。当鼠标点击不可交互UI控件或者空白处时,可交互控件失去焦点,此时按下键盘上的某个键是不会触发的。

四、On Paint

On Paint是在屏幕上绘制,可以绘制Box,Line,Lines,Text。

五、On Mouse Button DownOn Mouse Button UpOn Mouse Button Double Click

这三者都是在UI不可交互控件上才会触发!!!

On Mouse Button Down和Unity中是一致的,都是鼠标(包含鼠标左键右键和中键)按下时触发。

On Mouse Button Double Click就是鼠标双击时触发。

On Mouse Button Up就不太一样了,它不是简单的鼠标抬起时触发,而是在鼠标双击结束后触发!即鼠标第一次按下抬起再按下时,触发了鼠标双击事件On Mouse Button Double Click,此时鼠标是按下状态,这时鼠标再抬起时,就触发On Mouse Button Up。

六、On Mouse MoveOn Mouse WheelOn Mouse Enter和On Mouse Leave

On Mouse Move当鼠标悬停了UI控件上时会一直执行;

On Mouse Wheel当鼠标悬停了UI控件上且滑动滚轮时执行;

On Mouse Enter和On Mouse Leave是鼠标移入控件和移出控件时触发执行。

七、On Key Down和On Key Up和On Key Char

当鼠标聚焦于一个可交互控件时,按下键盘某个按键触发On Key Down,抬起时触发On Key Up;当一直按着键盘某个按钮,那么会一直执行On Key Down。

当按着键盘可输入按钮时,会一直执行On Key Char;但是按住Ctrl、Delete这类按钮时不会执行!

八、On Animation Started和On Animation Finished

顾名思义,动画开始播放时和播放结束后触发。

<think>嗯,用户之前问过关于“Ue字符串材质”的问题,现在接着问“Umg怎么创建”。看起来他们可能是在尝试在Unreal Engine中实现动态文本显示,之前提到了使用UMG来创建UI然后渲染到材质上。现在需要详细指导如何创建UMG,这可能是一个刚接触UE的开发者,不太清楚UMG的基本操作步骤。 首先,用户的问题很明确,直接询问如何创建UMG。但需要确认他们是否了解UMG的基本概念,或者是否需要从基础开始讲解。根据之前的对话,用户可能已经知道UMG的作用,但需要具体步骤。所以应该从创建UMG控件开始,逐步引导。 接下来,可能需要分步骤说明,比如在内容浏览器中右键创建控件蓝图,然后设计UI界面,添加文本组件,调整属性和布局。然后,如何在游戏中使用这个UI,比如添加到视口或者绑定到Actor。用户可能还需要知道如何动态更新文本,比如通过蓝图设置文本内容,或者绑定变量。 还要考虑用户可能遇到的常见问题,比如控件不显示、布局问题,或者如何与材质结合,因为之前的问题涉及到将UI渲染为纹理。可能需要提到Render Target的使用,或者如何将UMG与Widget Component结合,用于3D场景中的显示。 另外,用户可能需要优化建议,比如性能方面的注意事项,或者如何处理不同的屏幕分辨率。同时,高级功能如动画和事件绑定可能也是他们后续会用到的,但当前问题可能只需要基础步骤,不过提前提及这些可以帮他们扩展思路。 需要确保回答结构清晰,步骤明确,语言简洁,避免使用过于专业的术语,但又要准确。检查是否有遗漏的步骤,比如保存控件蓝图,编译和调试的重要性。最后,补充常见问题和技巧,帮助用户避免常见错误,提升效率。</think>以下是 **UMGUnreal Motion Graphics)** 在虚幻引擎中的基础创建流程,涵盖从零开始到动态交互的实现: --- ### **1. 创建UMG控件蓝图** - **步骤1**:在内容浏览器中右键 → **用户界面** → **控件蓝图**,命名(例如`BP_MyUI`)。 - **步骤2**:双击打开控件蓝图,进入**设计器界面**(左侧为控件面板,中间为画布,右侧为细节面板)。 --- ### **2. 设计UI界面** - **核心控件**: - **文本(Text)**:拖入画布,右侧细节面板中设置字体、大小、颜色(如绑定变量需勾选`Is Variable`)。 - **按钮(Button)**:拖入画布,绑定点击事件(右键按钮 → **OnClicked** → 创建蓝图逻辑)。 - **图片(Image)**:加载纹理资源(如`.png`或`.jpg`)。 - **布局技巧**: - 使用`Canvas Panel`自由布局,或`Vertical/Horizontal Box`自动排列。 - 锚点(Anchors)设置自适应屏幕比例。 --- ### **3. 在游戏中使用UMG** - **方法1:直接显示到屏幕** - 在关卡蓝图中:拖入**事件BeginPlay** → 添加 **Create Widget** 节点(选择`BP_MyUI`) → 连接 **Add to Viewport**。 - **方法2:绑定到Actor** - 添加`Widget Component`到Actor → 设置`Widget Class`为`BP_MyUI` → 调整3D空间中的位置和大小。 --- ### **4. 动态更新UI内容** - **文本更新**: - 在控件蓝图中创建**文本变量**(如`MyText`),设为`公开`。 - 在游戏逻辑中:获取控件实例 → 调用`Set Text`节点。 ```cpp // 示例蓝图逻辑: BP_MyUI → Set MyText = "New Content" ``` - **数据绑定**: - 使用`Bind`功能动态关联变量(如绑定玩家血量到进度条)。 --- ### **5. 高级功能** - **动画**:在控件蓝图中创建**动画时间轴**,实现UI淡入、缩放等效果。 - **事件通信**:通过`Event Dispatcher`实现UI与游戏逻辑的解耦交互。 --- ### **常见问题与优化** 1. **UI不显示**:检查层级(是否被其他UI覆盖)、视口缩放模式(`Screen Size`设置)。 2. **性能优化**:避免频繁更新UI,使用`异步加载`纹理,关闭未激活的UI。 3. **多分辨率适配**:设置锚点(Anchors)和`DPI Scaling`规则。 如果需要具体案例(如血条、交互提示),可提供需求场景进一步详解!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值