Get Player Controller 节点在虚幻引擎5中是一个基础且核心的节点,它的主要作用是获取当前控制游戏的玩家控制器(Player Controller)的引用。
玩家控制器就像是连接玩家输入和游戏世界中被控制角色(Pawn)的“桥梁”。获取到它的引用后,你就可以执行一系列关键操作,比如让某个物体响应玩家输入、切换控制的角色、或是显示/隐藏鼠标光标等。
以下是几个最常用的完整操作案例。
案例一:为关卡中的物体(Actor)启用输入
这是最常见的用法。想让玩家能与门、灯、宝箱等物体互动(例如按“E”键开门),就需要为该物体启用输入。
具体操作步骤:
-
创建并打开蓝图:在内容浏览器中创建一个新的
蓝图类,父类选择Actor,命名并双击打开。 -
添加事件:在事件图表中,右键添加
Event Begin Play节点。 -
获取玩家控制器:在图表中右键,搜索并添加
Get Player Controller节点。 -
启用输入:再次右键,搜索并添加
Enable Input节点。 -
连接节点:
-
将
Event Begin Play的输出引脚连接到Enable Input节点的输入引脚。 -
将
Get Player Controller节点的Return Value引脚连接到Enable Input节点的Player Controller引脚。
注意:
Enable Input节点的Target引脚默认是Self,代表这个物体本身,通常无需修改。 -
完成以上设置后,你就可以在这个蓝图里添加各种“输入事件”节点(如按键事件、鼠标点击事件等)了。当游戏开始,这个Actor就会监听玩家的输入。
案例二:在多个角色或载具间切换控制(Possess)
想让玩家按下“1”、“2”、“3”键,就能在不同角色或载具间切换控制,就需要用到 Possess 节点。
具体操作步骤:
-
放置角色:在关卡中放置好你想要控制的所有角色或载具的蓝图实例。
-
创建引用:在世界大纲视图中选中所有角色,然后点击主工具栏的
蓝图按钮,选择打开关卡蓝图。在关卡蓝图图表中右键,选择为选中的Actor创建引用,这会生成代表这些角色的变量。 -
添加按键事件:在关卡蓝图图表中,为切换控制分别添加键盘事件(如
1、2、3键事件)。 -
获取并支配:
-
添加
Get Player Controller节点。 -
从它的
Return Value引脚拖出引线,搜索并添加Possess节点。
-
-
连接节点:将每个按键事件的输出引脚,连接到各自对应的
Possess节点的输入引脚。再将之前创建的角色引用变量,连接到对应Possess节点的In Pawn引脚。
现在运行游戏,按下键盘上的数字键,就能在预先放置的角色间切换控制了。
案例三:显示或隐藏鼠标光标
在制作需要鼠标与UI交互的游戏时,经常需要控制鼠标光标的显隐。
具体操作步骤:
-
获取玩家控制器:在关卡蓝图或任何需要控制鼠标的蓝图中,添加
Get Player Controller节点。 -
设置鼠标显隐:从该节点的
Return Value引脚拖出引线,搜索并添加Set Show Mouse Cursor节点。 -
设置状态:将
Set Show Mouse Cursor节点的Show引脚设置为True(显示)或False(隐藏)。
你可以把这个逻辑放在按键事件或UI按钮的点击事件中,方便地控制鼠标的显示与隐藏。
更多应用场景
-
在控件蓝图中使用:在UI(控件蓝图)中,通常使用
Get Owning Player Controller节点来获取控制它的玩家控制器。 -
获取玩家Pawn:获取到玩家控制器后,可以通过
Get Controlled Pawn节点来获取玩家当前控制的具体角色或载具。 -
在C++中使用:在C++代码中,如果你有Pawn的引用,可以使用
GetController<APlayerController>()来获取玩家控制器。
重要提示与常见问题
-
Player Index 参数:
Get Player Controller节点有一个Player Index参数。在单人游戏中保持默认的0即可。在多人游戏中,0代表第一个本地玩家,1代表第二个,以此类推。 -
在动画蓝图中的注意事项:在动画蓝图中直接使用
Get Player Controller可能无法获得预期效果,因为它总是尝试获取索引为0的玩家控制器。更可靠的做法是从所属的Pawn或角色入手,使用Try Get Pawn Owner->Get Controller来获取控制器。 -
返回值可能为空:在游戏完全初始化之前(例如在
BeginPlay的极早期),Get Player Controller节点有可能返回空(Null)。在设计蓝图逻辑时,最好加入有效性检查(Is Valid),避免出现空指针错误。
总而言之,Get Player Controller 是连接玩家意图与游戏世界的关键节点,掌握它的使用是进行UE5蓝图开发的重要基础。
感谢您的来访,获取更多精彩文章请收藏本站。







暂无评论内容