如果您想在游戏中在多个可玩人物之间切换或想让人物进入并控制某个载具(汽车、飞机、坦克等)或具有特殊的控制方式的 Pawn(如玩家可控制的机载机关枪),您需要支配该人物或 Pawn 以向其传送输入信息。
玩家控制器 负责控制 Pawn,支配 Pawn 需要指定玩家控制器。Pawn 自身无须是人形人物,而可以是您想向其应用基本移动并允许玩家控制的任何东西。人物则是 Pawn 的一种形式,在默认情况下,包括碰撞和允许其执行类似人类基本动作的 CharacterMovementComponent。
实现指南
了解如何使用 Possess 和 UnPossess 蓝图节点在您的项目中控制 Pawn 或 人物 并向其输入内容。
对于此指南,我们使用的是 Blueprint Side Scroller 模板,但是,您可以随意使用自己的项目。如果您不知道如何创建项目或使用模板,请参阅项目浏览器页面了解更多信息。
步骤
-
在 Content Browser 中,将您要控制的其他人物拖放入关卡中。
在这里,我们从 Content > SideScrollerBP > Blueprints 文件夹另外添加了两个 SideScrollerCharacter 蓝图到关卡中,这样,关卡中共有三个人物。在此特殊模板项目中,一个人物已默认放置到关卡中。
-
在 World Outliner 中,选择您要控制的每个人物。
-
在主工具栏中,单击 Blueprints 按钮并 Open Level Blueprint。
-
在图表中 右键,然后在弹出菜单中选择 Create References to selected Actors 选项。
此操作将允许我们引用关卡中选定的每个人物。
-
在图表中 右键,然后搜索并选择 1 按键事件。
此操作将允许我们在按下或松开 1 键时启动一个事件。
-
将 2 和 3 键盘事件添加到图表中。
-
在图表中 右键,然后搜索并添加 Get Player Controller 节点。
玩家控制器用于获得人类玩家输入并将其转化为 Pawn 的动作。
-
左键 并拖出 Get Player Controller 节点的 Return Value,然后搜索并添加 Possess 节点。
此操作将指示玩家控制器要支配和控制的目标 Pawn。调用 Possess 函数时,该函数将自动检查 Pawn 当前是否被控制并在试图支配新的 Pawn 前先 UnPossess 它。
如果您想让玩家不再控制他们的 Pawn 并进入不直接控制可玩人物的旁观者状态,您可以使用 UnPossess 函数。
-
再创建两个 Possess 节点并按以下所示连接 1、 2 和 3 键盘事件。
现在,我们的设置是按下 1、2 或 3 时支配一个 Pawn。然后,我们需要从引用中定义要支配的 Pawn。
-
按以下所示,将每个 SideScrollerCharacter 引用连接到每个 In Pawn 针。
完成脚本化功能后,即可对其进行测试。
-
在工具栏中单击 Compile 以更新脚本。
-
在工具栏中单击 Play 以在编辑器中开始游戏。
最终结果
按下键盘上的 1、2 或 3 时,您将在关卡中的每个人物之间切换。