UnrealEngine蓝图进阶学习笔记(八):创建UI界面及引用 | 您所在的位置:网站首页 › 时间轴ui界面设计图 › UnrealEngine蓝图进阶学习笔记(八):创建UI界面及引用 |
发现虽然UE支持中文无比方便,但在搜索组件时搜索widget反而搜索不出,只能手打控件组件来搜索; 一、为钥匙的破解添加进度条UI显示 1.创建破解进度条UI在蓝图文件夹新建widgets文件夹,创建”用户界面-控件蓝图“WB_CrackProgress; 编辑,将通用中的进度条拖拽至层级窗口画布画板中名为CrackProgressBar,瞄点选择正中,x、y轴归零,对齐改为(0.5,0.5),尺寸(70,10);背景图绘制为无; 在组件中搜索控件组件命名为CrackProgressBarWidget,编辑位置高度为50,右侧设置用户界面的控制类选为以上UI; 用户界面的空间选项为场景时该UI仅正对着摄像机才能显示出全景,设置为屏幕时则一直正对摄像机; 右上角编辑图表:创建类型为key的EnterKeyRef变量, 编辑钥匙的事件蓝图,拖拽控件引脚创建GetUserWidgetObject(创建用户控件变量)节点, 编辑UI控件的设计器设置,点击添加绑定(自定创建函数); 编辑蓝图,设置进度条; 此时测试项目,破解钥匙时将有进度显示; 二、俯视角射击场景主UI的设计 4.创建生命值UI创建控件蓝图WB_ShootSpider_MainUI,在面板下拉项中选中覆层于画布面板下(位置越靠上则最先被渲染位于最底层),瞄点置于正下方,位置归零,对齐为(0.5,1.25),勾选大小到内容以适配图片大小; 添加图片命名为HUDBackground,设置背景图为hud_Icon,渲染变换设置中缩放改为(1,-1);大小改为(762.5,206.25) 添加进度条控件命名为HealthProgressBar,居中,填充图为Health贴图,条填充类型为从底到顶;改变渲染变化如图: 添加文本控件命名为HealthText,编辑水平垂直居中与字号, 添加进度条为SprintProgressBar,填充为FireBar; 拖拽新文本图层WaveText 创建WB_PauseMenu控件蓝图; 复制以上蓝图,重命名WB_FailMenu 创建Fonts文件夹,将外部字体资源导入UE,双击Font文件启用编辑,可在默认字体族系中编辑需引用的字体样式,编辑保存后可在其他控件蓝图中引用; 编辑游戏模式蓝图事件图表,新建createWidget(构建控件)节点加载UI控件 编辑MainUI控件蓝图图表,新建变量GameModeRef(GameMode类型实例)和PlayerRef(player实例),均勾选可编辑实例和生成时公开); 设置好参数引用后在游戏模式中刷新节点后编辑,创建AddToViewport(添加到窗口)节点;通过在控件图表中引用参数进而同步游戏数据; 为Wave文本控件内容绑定函数 将钥匙UI可见性设为隐藏;在图层中点灭眼睛只在设计中生效,不隐藏游戏UI 在控件蓝图图表中创建变量IsEnterKeyAppear(布尔),IsEnterKeyDead(布尔); 在游戏模式图表中创建UI控件节点的返回值提升至变量MainUI; 在钥匙图表中获取MainUI控件设置钥匙存在状态变量(注意勾选); 设置钥匙死亡后该钥匙死亡状态变量(注意勾选); 在控件蓝图中对钥匙UI可见性进行绑定 此时测试项目,生命值,冲刺时间射击时间均随游戏进度而改变,且钥匙出现时显示出钥匙UI,钥匙死亡后UI变为红色; 六、创建显示暂停菜单与InoutMode简介 13.为按钮绑定点击事件编辑图表,创建GetCurrentLevleName(获取当前关卡名)节点和OpenLevel(打开关卡)节点 项目设置中添加键盘P键和手柄特殊键右键映射; 在玩家蓝图中搜索创建InputActionPause事件,暂停功能需要游戏模式实现控制,故在游戏模式蓝图中创建两个自定义事件PauseGame和UnpauseGame; 在玩家蓝图中编辑游戏模式生成游戏模式引用变量; 关于FlipFlop(流程控制)节点,其功能为在两个函数间一次循环触发,由于此处暂停和取消暂停非一个按键(取消为鼠标按钮)故不使用; 编辑游戏模式蓝图; 编辑暂停UI控件蓝图图表,新建变量GameModeRef指定相应类型,勾选实例可编辑和生成时公开; 新建SetInputModeGameAndUI(设置输入模式游戏和UI)节点(让焦点聚焦于暂停UI面板,以便鼠标点击实效),实现输入模式的转换; 取消暂停时则隐藏面板并设置为仅输入模式游戏(此时禁用UI); 在切入暂停面板使用的设置输入模式游戏和UI节点,此处设为仅游戏模式的转换将禁用键盘操作,死亡后 也能实现游戏P键的禁用,但重开时键盘的禁用仍未解除,新一局游戏将无法游玩; 原因在于重开函数中的Openlevel打开当前关卡时将默认保留全局的InputMode模式;故需要设置输入模式游戏和UI节点; 编辑游戏模式蓝图,编辑初始化事件,创建失败菜单的UI变量以供玩家调用;创建Construst(从类构建对象)节点,类选择失败菜单,提升于PauseUI变量; 在游戏模式蓝图中新建SpawnSound2D节点挂载,音效选择ShooterGame_Music_Cue;考虑到暂停功能对音效无用,将该音效提升成变量BackGroundSound; 到此该UE项目告一段落,贺; 总结: (1).控件蓝图编辑UI在控件蓝图中我们可以在平面上设计屏幕中各种UI,图层类似于安卓Android Studio的编辑,加上PS中图层知识的混合;对于其中各种控件属性可以绑定自定义函数或增加点击事件增加如拼接文字,变换进度,暂停等功能; 可在游戏模式蓝图中创建控件选择该控件蓝图类并显示在视口; 在钥匙蓝图中获取游戏模式并转换后可Get到游戏模式中的变量并存储在本地,比如获取钥匙控件,钥匙触发死亡时则通过set本地参数传参通知UI控件蓝图其死亡状态;在控件蓝图中则通过此布尔参数决定其可见性或颜色; 在控件蓝图中创建变量,勾选可编辑实例和生成时公开后可与其他蓝图中调用; (2).字体导入与设计将外部字体资源导入UE,双击Font文件启用编辑,可在默认字体族系中编辑需引用的字体样式,编辑保存后可在其他控件蓝图中引用; (3).定义特殊按键创建映射;在玩家蓝图中搜索创建InputActionPause事件(注意勾选暂停时执行)查询按键触发; 在游戏模式蓝图中创建两个自定义事件PauseGame和UnpauseGame实现暂停功能;创建Construst(从类构建对象)节点,类选择UI控件;通过UI间的移除和添加实现界面的转换,并获取玩家控制器后启用或禁用光标;通过SetInputModeGameAndUI(设置输入模式游戏和UI)节点选项启用或禁用键盘及鼠标屏幕; 重开函数中的Openlevel打开当前关卡时将默认保留全局的InputMode模式; (4).背景音乐将生成的音效提升成变量形式则可通过调用该变量的形式实现音乐的暂停; |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |