在编辑器中进行测试(运行&模拟)

虚幻编辑器允许在关卡中任何地方生成玩家,且可以立即从编辑器中预览游戏,不必等待保存文件。有两种可用的预览模式: Play In Editor(在编辑器中运行) (PIE) 功能可以通过位于主工具条上的 Play(运行) 按钮直接访问, 而 Simulate In Editor(在编辑器中模拟) (SIE) 功能则可以通过 Play(运行) 按钮的下拉菜单中访问(或则会按下 Alt+S 键)。 在编辑器中预览系统支持在 Play In Editor(在编辑器中运行)Simulate In Editor(在编辑器中模拟) 会话之间切换,以便您可以快速地迭代游戏性及资源调整, 并查看游戏如何发生改变。

当您启动一个游戏预览会话时,编辑器将快速创建一个您的关卡的副本。所做的修改可以使用保持模拟修改 命令保存回到该编辑器内的关卡版本中。 这个关卡副本可以保持编辑器中的世界版本安全且不受干扰。

游戏预览包括关卡动态载入, World Outliner(世界大纲视图) 将会对应地更新,以便您可以选择及编辑游戏动态载入的Actor。 另外,当您开始使用 Play In Editor(在编辑器中运行)Simulate In Editor(在编辑器中模拟) 会话测试您的游戏时,您所选中的任何Actor都将仍然处于选中状态。 反过来也是 成立 的,所以在编辑器中进行测试时选中的任何Actor 在您结束测试会话后将仍然处于选中状态。这意味着即时您开始在关卡中很远的地方玩游戏了,但是 详细信息 面板将仍然显示 选中的Actor的属性,由于您想改变它的外观或行为。

工具栏

您可以通过使用适当的 工具条 按钮或下拉菜单从 关卡编辑器蓝图编辑器 中启动 Simulate In Editor(在编辑器中模拟)Play In Editor(在编辑器中运行) 会话。

关卡编辑器 中,如果您点击 Play(运行) 按钮...

playInEditor.png

这样将启动在编辑器中模拟(PIE)的会话,因而可以直接从编辑器中测试游戏您可以在下拉菜单中对 Play In Editor (在编辑器中游玩)会话的不同模式和选项进行选择,并且Play In按钮将会使用和先前会话所选的相同设置。

当您点击 Play(运行) 下拉按钮...

playin_dropdown.png

Play Options(运行选项) 下拉菜单出现...

button_PlayMenu.png

在这里,您可以修改您的 在编辑器中运行模式 ,设置基本的在编辑器中联网运行 选项,或者可以打开完整的在编辑器中运行设置窗口 。点击 Simulate(模拟) 开启 Simulate In Editor(在编辑器中模拟) 模式,这将会改变 工具条 的测试部分。 当您正在模拟时,您可以暂停或停止游戏,也可以使用 Possess(拥有) 按钮切换到 Play In Editor(在编辑器中运行) 会话。

SIE_toolbar.png

在编辑器中运行

在工具条上点击 Play(运行) 按钮 (默认按键绑定 Alt + P ) 或者在 视口 关联菜单中选择 Play From Here(从这里运行) 来启动 Play In Editor(在编辑器中运行) 会话。 Play In Editor(在编辑器中运行) 功能允许您直接从编辑器中运行当前关卡,以便您可以测试游戏功能,包括玩家控制及由玩家动作触发的关卡事件。

模式

使用不同的模式启动游戏预览将会修改使用 Play(运行) 按钮激活的默认 "运行" 模式。

显示类型

Viewport(视口)

游戏将显示在激活的关卡编辑器视口中。

点击以查看完整尺寸图片:

这是唯一允许通过使用 Possess(拥有)Eject(弹出) 按钮在 Play In Editor(在编辑器中运行)Simulate in Editor(在编辑器中模拟) 间切换的显示类型。 在 Viewport(视口) 模式中,您也可以使用 Pause(暂停)Stop(停止) 按钮来中断游戏。

PIE_toolbar.png

默认情况下,预览视口不会自动地控制鼠标光标。 您可以在预览视口中点击鼠标来将鼠标光标控制转向游戏。

mouse_control_label.png

要想再次获得鼠标光标,请按下 Shift+F1

mouse_regain_label.png

当您切换鼠标控制时将会在预览视口中出现一个小标签。 要想修改鼠标控制的选项或者修改鼠标控制标签的显示方式,那么请使用 “在编辑器中运行”设置窗口

New Window(新窗口)

游戏将会显示在新窗口中。要想改变默认的新窗口大小,请使用 “在编辑器中运行”功能设置窗口

点击以查看完整尺寸图片:

当在一个新窗口中播放游戏预览时,您不能切换到 Simulate In Editor(在编辑器中模拟) 会话。 然而,您仍然可以使用工具条按钮来暂停及停止游戏。

pause_stop_only.png

默认情况下,在新窗口中运行将会自动地将鼠标控制交给游戏。 您可以按下 Shift+F1 键来再次获得您的鼠标光标控制。

Standalone Game(独立游戏)

游戏将会显示在以其自己的进程运行的新窗口中。要想默认独立游戏的窗口大小,请使用“在编辑器中运行”功能设置窗口

点击以查看完整尺寸图片:

由于这种显示类型使得游戏以其自己的的进程运行,所以您不能暂停或停止该游戏。您也不能切换到 Simulate In Editor(在编辑器中模拟) 会话。 因此,当您运行独立游戏预览时,工具条按钮不会改变。

默认情况下,在独立窗口中运行将会自动地将鼠标控制交给游戏。 您可以按下 Shift+F1 键来再次获得您的鼠标光标控制。

起始位置

相机位置

游戏以当前的相机位置开始运行。

默认玩家起点

游戏以当前的玩家起点位置开始运行。

如果您的游戏使用了导航网格物体进行玩家控制的运动或AI控制的运动,那么使用 相机位置 作为您的 在编辑器中运行 功能的起始位置将会导致 将您生成在一个中断路径的位置处。 在这种情况下,推荐从 Default Player Start(默认玩家起点) 启动 Play In Editor(在编辑器中运行) 会话。

从这里运行

还有一个额外的 Play In Editor(在编辑器中运行) 模式,可以通过在 视口右击 并选择 Play From Here(从这里运行) 来访问。

play_from_here.png

Play From Here(从这里运行) 功能从您点击的位置处开始游戏,就像您将 显示类型 设置为 Level Viewport(关卡视口) 一样。

切换到“在编辑器中模拟”

当位于视口中的 在编辑器中运行 会话中时,按下 Shift+F1 可以重新获得鼠标控制。然后,点击 工具条 上的 Eject(弹出) 按钮来切换到 Simulate In Editor(在编辑器中模拟) 会话。 您将会脱离该玩家控制器,并从您的当前位置启动一个 Simulate In Editor(在编辑器中模拟) 会话。

您也可以按下 Eject(弹出) 功能的快捷键来从 Play In Editor(在编辑器中运行) 切换到 Simulate In Editor(在编辑器中模拟) 。(默认: F10)

如果您使用在编辑器中联网运行 功能为您的 在编辑器中运行 测试设置了多个客户端,那么则仅支持第一个会话(视口中的那个会话) 切换到 Simulate In Editor(在编辑器中模拟) 模式。即使是单玩家游戏测试,当游戏位于一个新窗口中或者以独立游戏进程运行时, Play In Editor(在编辑器中运行) 会话都不可以切换到 Simulate In Editor(在编辑器中模拟)

在编辑器中模拟

点击 Simulate (模拟)按钮将在当前的活动视口中开始 Simulate In Editor (在编辑器中模拟)会话。在模拟时,游戏开始,并会执行不依赖于玩家与游戏间互动的 蓝图 和C++ 代码。 在模拟时,您可以访问编辑器的所有工具,这样您就可以修改场景及其内容,甚至可以放置新建的Actor。 同时您可以在Pawn一执行动作时就选择并查看由AI控制的 Pawns , 且可以快速地调试及调整游戏行为。然而,由于您在模拟时没有使用玩家控制器,您将无法输入游戏控制。 您可以通过使用保持模拟修改 来保存在 Simulate In Editor (在编辑器中模拟)对话中所做的某些修改。

切换到“在编辑器中运行”

当处于 Simulate In Editor(在编辑器中模拟) 会话时,您可以点击 工具条 上的 Possess(占有) 按钮来切换到 Play In Editor(在编辑器中运行) 会话。 您将会附加到玩家控制器上,并在激活的关卡视口中启动 Play In Editor(在编辑器中运行) 会话。

您也可以按下 Possess(拥有) 功能的快捷键来从 Simulate In Editor(在编辑器中模拟) 切换到 Play In Editor(在编辑器中运行) 。(默认: F10)

如果您使用 Simulate In Editor(在编辑器中模拟) 会话开始在编辑器中测试游戏,然后使用 Possess(拥有) 功能附加到了玩家控制器上,那么您将在
默认的玩家起始位置开始您的 Play In Editor(在编辑器中运行) 会话。这等同于从 Play In(运行于) 下拉菜单中选择 Play In(运行于) > Viewport at (视口)> Default Player Start(默认玩家起点) 。 然而,如果您先前从 Play In Editor(在编辑器中运行) 会话切换到了 Simulate In Editor(在编辑器中模拟) 会话,而没有离开在编辑器中测试模式,那么当您点击 Possess(拥有) 按钮时 您将会重新附加到那个玩家控制器上并继续从您先前点击 Eject(弹出) 按钮的位置处继续游戏。

测试游戏

蓝图

当您进入到 在编辑器中运行在编辑器中模拟 模式时,将会编译您的所有 蓝图 ,即使这些蓝图还没有保存也会对其进行编译。当游戏正在运行或模拟时,所有 蓝图 图表都是只读的,所以您不能添加额外节点或者进行不同的连线。

simulating_readonly.png

然而,当预览会话激活时,您可以修改 蓝图 默认值,并且这些修改将会应用到您正在测试的关卡中的那个 蓝图 的所有实例上。

C++

对于包含C++代码的项目,在 关卡编辑器工具条上 有一个 编译 按钮。 该按钮可以在运行时重新编译及重新加载游戏代码。 如果您在项目的C++文件中 修改了一个属性,那么点击 编译 按钮将会重新编译并加载您的游戏模块,以便您的代码修改可以反映在编辑器中。 有些时候,甚至在您使用 在编辑器中运行在编辑器中模拟 功能时,也可以进行编译,您的代码修改将会更新,且您不需要停止游戏或模拟。