效果
可以看到玩家输入各自的名称,会显示到自己控制的角色头上。但是目前有一个BUG就是,当客户端加入游戏时会多创建一个服务端的角色。
步骤
1. 打开“BP_ThirdPersonCharacter”,添加一个控件组件,用于显示玩家名称
作为网格体组件的子项
在视口中将控件组件移动到玩家的头顶位置
空间一项选择屏幕,勾选以所需大小绘制
2. 新建一个控件蓝图,命名为“UMG_PlayerName”
打开“UMG_PlayerName”,添加一个画布面板和一个文本控件
选择所需
文本块勾选大小到内容
勾选 是变量
在图表中新建一个函数,命名为“FUN_SetPlayerName”
在该函数中去设置文本块的文本内容,内容就是调用函数时传入的文本参数
3. 回到“BP_ThirdPersonCharacter”,Widget控件的控件类选择“UMG_PlayerName”
4.重新检查一下在两个关卡中是否使用的是两个游戏模式:
第一的关卡中的游戏模式是“GM_MainMenu”
第二个关卡使用的游戏模式是“GM_Lobby”
5. 打开“UMG_MainMenu”,修改一点逻辑:当创建房间后,只需要打开新的关卡即可,"Listen"(监听)的意思是允许游戏作为一个主机创建会话,其他玩家可以加入这个会话。
其他玩家加入成功后也不需要执行任何逻辑
6. 打开玩家控制器“PC_Lobby”,在事件开始运行时就执行函数“EVE_Spawn_Player”,将获取游戏实例的玩家名称作为函数“EVE_Spawn_Player”的输入。然后函数“EVE_Spawn_Player”将输入的“PlayerName”传给“BP_ThirdPersonCharacter”
7. 打开第三人称角色蓝图“BP_ThirdPersonCharacter”,在事件开始运行时就将自身的“PlayerName”变量作为控件蓝图“UMG_PlayerName”中的函数“Fun_SetPlayerName”的输入。
此时运行游戏如文章开头所示。