UE 项目UI的快速设计和显示UI

        在本文中,将学习如何利用UE的动态图形UI设计器(UMG)实现一些基础的游戏内HUD元素和前端菜单。你将学习如何实现体力和能量条,以及如何跟踪和显示玩家弹药量。你还将学习如何创建用于启动游戏、设置分辨率或退出游戏的主菜单。之后你将学习如何添加用于暂停游戏或返回主菜单的游戏内暂停菜单。

        步骤1 :创建一个UI,在资源文件夹中右键,然后如下图选择1再选择2,命名为HUD。

 步骤2:创建另外2个控件蓝图,一个主菜单MainMenu,另一个暂停菜单PauseMenu。

 步骤3:在资源文件夹中右键,创建一个新关卡命名为Main。

步骤4:打开Content/ThirdPersonBP/Blueprints文件夹中的ThirdPersonCharacter蓝图

此蓝图是可操纵角色的蓝图,我们将在这一蓝图中创建一些信息,传递给HUD控件蓝图进行显示

步骤5:选中ThirdPersonCharacter,点击Add Component按钮创建一个名为MyPlayer的蓝图,点击添加变量按钮,创建一个新变量。

步骤6:在新变量的细节面板中,将变量命名为Health,将变量类型改为float类型,并将默认值改为1。改了名字类型后要先点"编译"按钮,才会出现默认值选项。该变量代表在HUD上显示的玩家的体力值。

 

 步骤7:另外创建一个名为Energy的float型变量,默认值设为1.0,代表HUD上显示的玩家的能力值。 

步骤8:另外创建一个名为Ammo的整型变量,默认值设为25,代表HUD上显示的玩家的弹药量。

步骤9:另外创建一个名为MaxAmmo的整型变量,默认值设为25,代表HUD上显示的玩家的最大弹药量。

步骤10:拖动EventBeginPlay节点的输出针脚创建CreateWidget节点,类型选择HUD。

 

 步骤11:将CreateHUDWidget节点的返回值提升为变量,改名为HUD。会自动出现Set节点对该变量进行设置。这样便会在游戏开始时创建HUD蓝图控件并将其存储为变量,供日后存取使用。

 步骤12:拖动Set节点的输出针脚并添加Add to Viewport节点。

 这样做可以把Target指定的目标蓝图控件添加到玩家窗口中,即将UI显示到游戏窗口。

        在开始生成实际HUD之前,需要完成的最后一项工作是为角色变量提供一种变更方式。

步骤13:在ThirdPersonCharacter蓝图中定义一个名为Player的变量,类型为MyPlayer类型。

 步骤14:在MyPlayer蓝图中点击Functions栏的+按钮添加自定义函数,SubHealth、GetHealth、SubEnergy、GetEnergy、SubAmmo、GetAmmo。这里放一下SubHealth和GetHealth的函数设计图,其它的函数同理。

 

 

 

        

        其中GetHealth有个ReturnNode返回值节点,左边选中函数后右边会显示出函数的属性面板,属性面板下面的Inputs和Outputs分别表示函数的输入参数和输出参数,具体类型、名字、个数由自己设置,点击右边的+按钮就能添加参数。变量连线的下面的2个连接节点,从变量拉线出来选择最下面的Add Reroute Node节点就能创建,使用连接节点能避免连线重叠的问题。

 步骤15:找到ThirdPersonCharacter的Jump代码块,在Jump函数后拖线调用MyPlay组件的SubEnergy函数。然后在一开始时获取一下MyPlayer类型对象并给Player变量赋值。

 

 步骤16:打开HUD蓝图,选中表示能量的Text,将其绑定到MyPlayer类型变量Player的Energy变量上(变量Player是步骤13定义的),这样当变量Player的Energy变量发生变化时,Text控件显示的数字自动变化。ThirdPlayer是HUD中定义的ThirdPersonCharacter类型变量,一开始时要获取并设置一下,这样在对表示能量的Text进行绑定的时候才能使用。

 步骤17:最后我们运行一下测试下功能,结果每次角色跳起来的时候显示的能力值就会减少1,实现了我们想要的功能,生命值弹药量也同理,这里就留给你们自己动手操作实现一下了。

猜你喜欢

转载自blog.csdn.net/qq_34256136/article/details/127810665