ue3d虚幻UE引擎制作UI分数界面

虚幻UE引擎制作UI分数界面

分类:
ue3d - 虚幻UE引擎制作UI分数界面

本文将在分步描述在虚幻引擎(UE5.1)中将实现UI方面的几个内容,如下所示:

创建UI和集成当前分数最高分

请在Content Drawer中创建一个UI文件夹并创建一个名为BP_MainWidget的控件蓝图。

ue3d - 虚幻UE引擎制作UI分数界面

这里蓝图继承了User Widget。

ue3d - 虚幻UE引擎制作UI分数界面

蓝图的编辑窗口如下所示:

ue3d - 虚幻UE引擎制作UI分数界面

首先,将Canvas Panel从左边Palette面板的Panel项拖到下方Higher Key面板的[BP_MainWidget]中创建。

ue3d - 虚幻UE引擎制作UI分数界面

创建时,会显示一个中间有虚线的矩形,矩形的范围成为设置UI的空间。

ue3d - 虚幻UE引擎制作UI分数界面

通过移动矩形右下角的双向箭头来设置UI屏幕的大小,这里3D天堂设置为1920*1080。

ue3d - 虚幻UE引擎制作UI分数界面

在Palette的Common项中,在Higheraki面板中创建文本作为Canvas Panel的子对象,并设置细节值,如下。

ue3d - 虚幻UE引擎制作UI分数界面

以相同的方式创建最高分文本和当前/最高分UI。

ue3d - 虚幻UE引擎制作UI分数界面

保存并加载最高分数

这与Unity不同,虚幻UE引擎需要在游戏中创建UI,为实现该功能,需要在项目开始时使用BP_GameModeBase蓝图。

在BP_GameModeBase蓝图的Event BeginPlay节点中,创建一个相应UI(BP_MainWidget)的节点。

ue3d - 虚幻UE引擎制作UI分数界面

上述节点是创建小部件并将小部件添加到ViewPort的节点,在BP_GameModeBase中添加可以包含当前分数和最高分数的变量。

ue3d - 虚幻UE引擎制作UI分数界面

每当Enemy被击中并消失时,curScore应该增加1。为此,在BP_GameModeBase中创建一个增加curScore的函数,并在删除BP_Bullet的Enemy时创建一个节点来调用该函数

首先,创建一个增加curScore值的函数。

在左侧的Function中添加一个带有+的函数,并将名称设置为AddScore。

ue3d - 虚幻UE引擎制作UI分数界面

在创建的AddScore节点的细节窗口的Input项中添加一个整数值的score变量。通过添加此值,可以在调用函数时将评分值作为参数传递

ue3d - 虚幻UE引擎制作UI分数界面

接着创建一个节点以将分配的分数值添加到curScore。

ue3d - 虚幻UE引擎制作UI分数界面

并且如果curScore通过bestScore,还会添加一个更新bestScore的节点。

ue3d - 虚幻UE引擎制作UI分数界面

现在从BP_Bullet调用该函数。

子弹与敌人碰撞并产生爆炸效果后,添加以下节点。

ue3d - 虚幻UE引擎制作UI分数界面

Get Game Mode获取当前运行的游戏模式类,将带入对应节点的值强制转换为BP_GameModeBase,判断该值,如果正确则导入并使用BP_GameModeBase中的AddScore函数。

如果找不到,请取消选中右上角的复选框,该复选框仅显示与拖动的引脚相关的节点。

ue3d - 虚幻UE引擎制作UI分数界面

并且需要将BP_GameModeBase的curScore和bestScoreBP_MainWidgettext_curScoreDtext_bestScoreD关联起来。

在text_curScoreD的细节面板中,通过Content项文本右侧的组合框执行Create Binding。

ue3d - 虚幻UE引擎制作UI分数界面

然后,在BP_MainWidget中创建以下函数。

ue3d - 虚幻UE引擎制作UI分数界面

创建一个节点,将BP_GameModeBase的curScore值带到对应的节点

ue3d - 虚幻UE引擎制作UI分数界面

text_bestScoreD也是以同样的方式实现的。

ue3d - 虚幻UE引擎制作UI分数界面

如果运行它,你可以看到它是这样应用的:

ue3d - 虚幻UE引擎制作UI分数界面

但是,如果重新开始,高分将被重置,当游戏结束时,最高分被保存,当游戏再次进行时,保存的最高分被调用。

首先,UE引擎中有一个单独的类可以存储简单的游戏信息,因此创建一个扩展保存游戏类BP_SaveScore蓝图。

ue3d - 虚幻UE引擎制作UI分数界面

然后,在蓝图中创建一个变量来存储分数

ue3d - 虚幻UE引擎制作UI分数界面

在BP_GameModeBase中创建一个SaveScore函数,创建一个BP_SaveScore Blueprint创建一个节点来保存数值

ue3d - 虚幻UE引擎制作UI分数界面

使用BP_SaveScore类创建一个游戏对象,并使该对象成为一个名为Save instance(提升为变量)的变量。然后,将Save Value赋给该对象的ScoreData值。

最后,通过Save Game to Slot节点保存名为BestScoreData的对象,每当在AddScore函数中更新最高分时,就会保存相应的函数。

ue3d - 虚幻UE引擎制作UI分数界面

如果运行并通过文件资源管理器检查它,可以看到一个名为BestScoreData的已保存文件。

ue3d - 虚幻UE引擎制作UI分数界面

现在添加LoadScore函数来加载文件。

ue3d - 虚幻UE引擎制作UI分数界面

另外,由于第一次执行时没有对应的存档,所以增加了一个节点来检查存档是否存在。

ue3d - 虚幻UE引擎制作UI分数界面

加载文件的时间被添加到Event Beginplay。

ue3d - 虚幻UE引擎制作UI分数界面

再运行一下游戏,可以看到最高分已经正常输出了。

ue3d - 虚幻UE引擎制作UI分数界面

以上是3D天堂关于虚幻UE引擎中的创建UI分数界面的全部内容,如果你有任何反馈,请随时在本页面下方留言。

相关信息

  • 类型:知识
  • 字数:1013
  • 字符:3323
  • 适用软件:Unreal Engine
  • 【说明:无】
  • 编号:153879

热门内容

提示:3D天堂作为服务提供者,尊重网络版权及知识产权,对某些行为的发生不具备充分的监控能力,若无意间侵犯到您的权利,请 联系我们,我们会在收到信息后尽快给予处理。

本站文章版权归本站自创作者所有,未经允许不得转载!