查看: 195|回复: 7

[引擎各个功能] 【5.创建/编写游戏内暂停菜单的脚本 | Unreal Engine】

[复制链接]

1

主题

273

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
73034
发表于 2016-6-25 18:46:23 | 显示全部楼层 |阅读模式



上一步
下一步



   
快速入门主页



我们最后要创建一个简单的暂停菜单,以允许玩家暂停或退出游戏。
视觉:暂停菜单布局
在本节中,我们将为基础暂停菜单创建视觉布局。

打开 暂停菜单 控件蓝图。

在 设计器 标签上,从 调色板 上将控件拖放到 层级 上,完成如下设置。

Pause1.jpg



我们的 画布面板 上有一个 边框,其中包含一个带 文本 的 垂直框 和两个带 文本 的 按钮。

在 设计器 窗口中,重新调整 边框 资源文件大小使其填满整个点窗口(填充屏幕)。

Pause2.jpg



也可以通过 细节 面板中的 画刷色彩 选项更改色彩。

Pause3.jpg



您可能还想将色彩的 Alpha  通道值设为 0.5,增添一些半透明度。当在游戏进程中打开暂停菜单时,边框将填充屏幕,而添加一些半透明度将使游戏依然在背景中可见。

而对于 细节 面板中的 边框,务必使用填充屏幕锚。

Pause4.jpg



此举将确保边框能填充任意尺寸的屏幕。

在 层级 中选择 垂直框,然后在 细节 面板中同时令其水平和垂直居中。

Pause5.jpg



在 垂直框 下选择 文本,然后在 内容 的 细节 面板下输入 暂停菜单。

Pause6.jpg



在其他两个 文本 块输入 继续 和 退出。

Pause7.jpg



按住 Ctrl 并选择 层级 中的两个 按钮,然后在 风格 下的 细节 面板中指定一个 悬停 色彩。

Pause8.jpg



在 细节 面板中将 按钮 分别重命名为 继续 和 退出。

Pause9.jpg


脚本:暂停菜单功能
完成外观设置之后,接下来我们将为暂停菜单提供脚本功能。

点击控件蓝图编辑器窗口右上角的 图表 按钮。

在 我的蓝图 窗口中的 图表 标签上,点击 退出按钮,然后在 细节 面板中添加一个 OnClicked 事件。

PauseScript1.jpg



再为 继续按钮 添加一个 OnClicked 事件。

在 图表 窗口中,右击 并添加一个 Get Player Controller 节点。

PauseScript2.jpg



在 Get Player Controller 旁边,使用 设置输入模式仅限游戏,然后是 Remove from Parent 和 Set Game Paused,即如下所示。

PauseScript3.jpg



此时,若点击 继续按钮,输入模式将设为仅限游戏,而暂停菜单激活时所显示的游标将被移除。通过使用 Set Game Paused 节点和不勾选 暂停,Remove from Parent 节点可在离开暂停状态之前从显示屏上移除实际的暂停菜单控件。

创建一个新的名为 Remove HUD 的 功能。

PauseScript4.jpg



当暂停菜单激活时,我们将使用它从玩家的视线中移除游戏 HUD。

在功能中,添加一个 Get Player Character 节点并在 返回值 旁边添加 Cast ToFirstPersonCharacter 节点。

PauseScript5.jpg



这样我们便能访问正在被玩家使用的角色蓝图和游戏 HUD。

在 As First Person Character**旁边,先后使用 Get HUD Reference 和 Remove from Parent**,即如下所示。

PauseScript6.jpg



这样便能访问玩家角色使用的 HUD 并在退出游戏时将其从窗口移除。

在 Event Graph 上,Get Player Controller 旁边使用设为 真 的 Set Show Mouse Cursor 节点。

PauseScript7.jpg



点击 退出 后,返回主菜单时将开启鼠标光标,以便进行菜单导航。

接下来添加上面创建的 Remove HUD 功能,然后添加 开放关卡(设为 主要 或主菜单所在的关卡名)并按如下方式进行连接。

PauseScript8.jpg




点击查看全图。

两个按钮均已设好,最后需要做的便是允许玩家呼出暂停菜单并暂停游戏。



在 内容浏览器 中的 Content/FirstPersonBP/Blueprints 文件夹下,打开 FirstPersonCharacter 蓝图。

PauseScript9.jpg



在图表中,添加一个 M 按键事件和一个 Create Widget 节点(设为 暂停菜单) 并将 Return Value 提升为变量。

PauseScript10.jpg



虽然我们在这里使用了 M 按键作为呼出暂停菜单的输入,但您也可以将其设为任意键。我们称已被提升的变量为 Pause Menu Reference,因其为创建的暂停菜单存储了一个参考。

按住 Ctrl 并从 MyBlueprint 窗口拖入变量,并将其与一个 IsValid 节点连接起来。

PauseScript11.jpg



我们正进行检查以确定暂停菜单控件是否已被创建并存储于该变量中。

将 Is Not Valid 针脚和 Create PauseMenu_C Widget 连接起来。

PauseScript12.jpg



右击 并先后添加 Get Player Controller 节点和 Set Input Mode UI Only,然后按如下方式连接节点。

PauseScript13.jpg



按下 M 时,若之前已访问过暂停菜单,则无需再次创建,而是访问该变量。如这是第一次访问暂停菜单,则其将创建并存储为一个变量,以便之后访问。无论是哪种情况,在显示暂停菜单之前输入模式将设为仅限 UI(稍后我们会显示暂停菜单)。

在 Pause Menu Reference 变量旁边,先后使用 Add to Viewport 节点和 Set Game Paused(将 已暂停 设为 真)。

PauseScript14.jpg




点击查看全图。

暂停菜单已经设好,现在开始测试。

点击 编译 和 保存 按钮,然后点击 开始游戏 按钮在编辑器中进行测试。

在游戏中时,按下 M 键(或您所指定的其他任意键)便能使游戏暂停并呼出暂停菜单。在此,可以使用 继续 按钮继续游戏,或使用 退出 按钮返回主菜单。

下节内容为使用 虚幻动态图形 和 蓝图 的相关信息。




   
上一步
下一步



   
快速入门主页
回复

使用道具 举报

0

主题

836

帖子

2789

积分

vip会员

Rank: 1

积分
2789
发表于 2016-7-2 19:18:16 来自手机 | 显示全部楼层
不错哦  下载看一下啊
回复 支持 反对

使用道具 举报

0

主题

885

帖子

2946

积分

vip会员

Rank: 1

积分
2946
发表于 2016-7-3 04:37:23 来自手机 | 显示全部楼层
这就是为什么春哥在天朝这么火的原因啊!
回复 支持 反对

使用道具 举报

0

主题

845

帖子

2758

积分

vip会员

Rank: 1

积分
2758
发表于 2016-7-3 07:29:33 | 显示全部楼层
谢谢分享,顶一个
回复 支持 反对

使用道具 举报

0

主题

867

帖子

2878

积分

vip会员

Rank: 1

积分
2878
发表于 2016-7-4 06:32:29 来自手机 | 显示全部楼层
好东西这么多....
回复 支持 反对

使用道具 举报

0

主题

847

帖子

2852

积分

vip会员

Rank: 1

积分
2852
发表于 2016-7-4 17:44:58 | 显示全部楼层
大水比一个,路过支持一下
回复 支持 反对

使用道具 举报

0

主题

850

帖子

2807

积分

vip会员

Rank: 1

积分
2807
发表于 2016-7-9 11:43:51 | 显示全部楼层
好久没给力点的了。谢谢
回复 支持 反对

使用道具 举报

0

主题

897

帖子

3011

积分

vip会员

Rank: 1

积分
3011
发表于 2016-7-15 14:19:52 来自手机 | 显示全部楼层
这个必须顶,撸主好人
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部