虚幻引擎 Get Player Controller 节点

Get Player Controller 节点在虚幻引擎5中是一个基础且核心的节点,它的主要作用是获取当前控制游戏的玩家控制器(Player Controller)的引用

玩家控制器就像是连接玩家输入和游戏世界中被控制角色(Pawn)的“桥梁”。获取到它的引用后,你就可以执行一系列关键操作,比如让某个物体响应玩家输入、切换控制的角色、或是显示/隐藏鼠标光标等。

以下是几个最常用的完整操作案例。

案例一:为关卡中的物体(Actor)启用输入

这是最常见的用法。想让玩家能与门、灯、宝箱等物体互动(例如按“E”键开门),就需要为该物体启用输入

具体操作步骤:

  1. 创建并打开蓝图:在内容浏览器中创建一个新的蓝图类,父类选择Actor,命名并双击打开

  2. 添加事件:在事件图表中,右键添加 Event Begin Play 节点

  3. 获取玩家控制器:在图表中右键,搜索并添加 Get Player Controller 节点

  4. 启用输入:再次右键,搜索并添加 Enable Input 节点

  5. 连接节点

    • 将 Event Begin Play 的 输出 引脚连接到 Enable Input 节点的 输入 引脚

    • 将 Get Player Controller 节点的 Return Value 引脚连接到 Enable Input 节点的 Player Controller 引脚

    注意Enable Input 节点的 Target 引脚默认是 Self,代表这个物体本身,通常无需修改

完成以上设置后,你就可以在这个蓝图里添加各种“输入事件”节点(如按键事件、鼠标点击事件等)了。当游戏开始,这个Actor就会监听玩家的输入

案例二:在多个角色或载具间切换控制(Possess)

想让玩家按下“1”、“2”、“3”键,就能在不同角色或载具间切换控制,就需要用到 Possess 节点

具体操作步骤:

  1. 放置角色:在关卡中放置好你想要控制的所有角色或载具的蓝图实例

  2. 创建引用:在世界大纲视图中选中所有角色,然后点击主工具栏的蓝图按钮,选择打开关卡蓝图。在关卡蓝图图表中右键,选择为选中的Actor创建引用,这会生成代表这些角色的变量

  3. 添加按键事件:在关卡蓝图图表中,为切换控制分别添加键盘事件(如 123 键事件)

  4. 获取并支配

    • 添加 Get Player Controller 节点

    • 从它的 Return Value 引脚拖出引线,搜索并添加 Possess 节点

  5. 连接节点:将每个按键事件的输出引脚,连接到各自对应的 Possess 节点的 输入 引脚。再将之前创建的角色引用变量,连接到对应 Possess 节点的 In Pawn 引脚

现在运行游戏,按下键盘上的数字键,就能在预先放置的角色间切换控制了

案例三:显示或隐藏鼠标光标

在制作需要鼠标与UI交互的游戏时,经常需要控制鼠标光标的显隐。

具体操作步骤:

  1. 获取玩家控制器:在关卡蓝图或任何需要控制鼠标的蓝图中,添加 Get Player Controller 节点

  2. 设置鼠标显隐:从该节点的 Return Value 引脚拖出引线,搜索并添加 Set Show Mouse Cursor 节点

  3. 设置状态:将 Set Show Mouse Cursor 节点的 Show 引脚设置为 True(显示)或 False(隐藏)

你可以把这个逻辑放在按键事件或UI按钮的点击事件中,方便地控制鼠标的显示与隐藏。

更多应用场景

  • 在控件蓝图中使用:在UI(控件蓝图)中,通常使用 Get Owning Player Controller 节点来获取控制它的玩家控制器

  • 获取玩家Pawn:获取到玩家控制器后,可以通过 Get Controlled Pawn 节点来获取玩家当前控制的具体角色或载具

  • 在C++中使用:在C++代码中,如果你有Pawn的引用,可以使用 GetController<APlayerController>() 来获取玩家控制器


重要提示与常见问题

  1. Player Index 参数Get Player Controller 节点有一个 Player Index 参数。在单人游戏中保持默认的 0 即可。在多人游戏中,0 代表第一个本地玩家,1 代表第二个,以此类推

  2. 在动画蓝图中的注意事项:在动画蓝图中直接使用 Get Player Controller 可能无法获得预期效果,因为它总是尝试获取索引为0的玩家控制器。更可靠的做法是从所属的Pawn或角色入手,使用 Try Get Pawn Owner -> Get Controller 来获取控制器

  3. 返回值可能为空:在游戏完全初始化之前(例如在 BeginPlay 的极早期),Get Player Controller 节点有可能返回 (Null)。在设计蓝图逻辑时,最好加入有效性检查(Is Valid),避免出现空指针错误。

总而言之,Get Player Controller 是连接玩家意图与游戏世界的关键节点,掌握它的使用是进行UE5蓝图开发的重要基础。

感谢您的来访,获取更多精彩文章请收藏本站。

THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容