【UE5 多人联机教程】05-生成玩家

本文详细介绍了创建一个游戏大厅的过程,包括设置游戏模式、玩家控制器、游戏状态,以及使用控件蓝图显示界面元素。在游戏模式中管理玩家控制器数组,处理玩家进出。同时,涉及了主菜单的编辑文本交互,玩家名称验证,以及在开始游戏时如何生成玩家角色,并同步玩家信息到第三人称角色模板中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

步骤

1. 新建一个游戏模式基础

命名为“GM_Lobby”

2. 新建一个玩家控制器,命名为“PC_Lobby”

 

 3. 新建一个游戏状态基础

 命名为“GS_Lobby”

 重新设置游戏模式重载、玩家控制器类、游戏状态类

 4. 新建一个控件蓝图,命名为“UMG_Lobby”

 打开“UMG_Lobby”,添加如下控件:

5. 打开关卡“Lobby”

 6. 打开关卡“Lobby”的关卡蓝图添加如下节点,将控件蓝图进行显示

 此时运行可以看到控件蓝图已经可以正常显示:

 7. 打开游戏模式“GM_Lobby”

新建一个数组,命名为“PC_List”,用于存放所有玩家控制器

 在事件图表中添加如下节点,表示当有玩家加入时,就把它的玩家控制器加入数组“PC_List”

 继续添加如下节点,当玩家登出时从数组“PC_List”中删除相应的玩家控制器。

 8. 打开“UMG_MainMenu”,添加一个可编辑文本

 设置可编辑文本的填充值、提示文本、字体尺寸等

 9. 打开游戏实例“GI_Main”,添加一个文本类型的变量

10. 回到“UMG_MainMenu”,找到开始游戏的点击事件

 在点击“开始游戏”按钮后,判断可编辑文本内容是否为空,如果为空就打印提示信息,否则就切换显示的控件,并设置游戏实例中的文本变量“PlayerName”的值。

 11. 打开玩家控制器“PC_Lobby”,添加一个自定义事件,命名为“EVE_Spawn_Player”表示生成玩家的事件。

 12. 打开第三人称角色模板蓝图“BP_ThirdPersonCharacter”,添加一个文本类型变量,命名为“PlayerName”

 复制选择“RepNotify”,这样每当变量“PlayerName”发生变化时,就会调用函数“OnRep_PlayerName”

 

勾选可编辑实例、生成时公开

再添加一个字符串类型的变量,命名为“PlayerID” 

 勾选可编辑实例、生成时公开,复制选择“Replicated”

 13. 回到玩家控制器“PC_Lobby”中,在自定义事件“EVE_Spawn_Player”的细节面板中,复制选择“在服务器上运行”,勾选可靠函数。

 “EVE_Spawn_Player”逻辑如下,首先获取玩家出生点的transform,然后生成“BP_ThirdPersonCharacter”

 “EVE_Spawn_Player”添加一个输入,命名为“PlayerName”

 连接到“从类生成Actor”节点的引脚上

 “PlayerID”就用时间表示

 控制生成的Pawn

 当事件开始运行时,获取游戏实例,转为我们自定的游戏实例后,获取存储的变量“PlayerName”作为“EVE_Spawn_Player”方法的参数的值

 

好的,针对UE4多人联机时PlayController可能遇到的问题,我可以给出以下回答: 1. 多人联机时如何同步PlayController状态? 在多人联机游戏中,每个玩家的PlayController都需要与服务器同步。为了保持状态同步,您可以使用Replication或RPC功能,从而确保PlayController的状态在不同客户端之间同步。例如,您可以使用Unreal Engine提供的Replicated属性或Replicated函数,或使用RPC来调用服务器上的函数来同步PlayController状态。 2. 如何处理多个PlayController的输入? 在多人联机游戏中,如果多个玩家同时按下按键,则需要在服务器上处理它们的输入,以避免状态不同步的问题。为了处理这个问题,您可以使用Unreal Engine提供的Input Buffering功能。通过使用Input Buffering,您可以在玩家按下按键时捕捉输入,然后将其发送到服务器,服务器再处理输入,然后将其发送回客户端以确保同步。 3. 如何在多人联机游戏中处理PlayController的位置和旋转同步? 在多人联机游戏中,每个玩家的PlayController都需要在不同客户端之间同步位置和旋转。为了实现这个功能,您可以使用Unreal Engine提供的Replication功能。使用Replication,您可以将PlayController的位置和旋转同步到其他客户端,以确保所有玩家都看到相同的游戏状态。 希望这些回答能够帮助您解决UE4多人联机时PlayController可能遇到的问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhichao_97

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值