UE5&C++ 多人 TPS 游戏(二)
1. LAN (local area network) 测试
编辑器内测试,如下图所示:

可以调整玩家数量,网络模式。
2. 网络模式:
如之前(一)内所介绍,CS 可以 自身做服务器,也可以设专用服务器。
- 运行 Standalone :将启动一个独立的游戏。此操作不会创建专用服务器,也不会自动连接到一个服务器。
- 以监听服务器运行:编辑器将同时用作服务器和客户端。基于客户端数量,可打开超出的额外实例。
- 以客户端运行:编辑器将用作客户端。将在场景后方启动服务器,以进行连接。

3. 创建一个 LAN
3.1 测试功能编写

具体代码如下:
点击查看代码
/** LAN 测试 **/
void AMPTesingCharacter::OpenLobby() const
{
if (UWorld* World = GetWorld())
{
// Jumps the server to new level.
World->ServerTravel("/Game/ThirdPerson/Maps/Lobby?listen");
}
}
void AMPTesingCharacter::CallOpenLevel(const FString& Address)
{
// Travel to another level
// 关卡名字(FName) 或者 URL 地址(FString)
UGameplayStatics::OpenLevel(this, *Address);
}
void AMPTesingCharacter::CallClientTravel(const FString& Address)
{
if (APlayerController* PlayerController = GetGameInstance()->GetFirstLocalPlayerController())
{
// Travel to a different map or IP address.
PlayerController->ClientTravel(*Address, ETravelType::TRAVEL_Absolute);
}
}
-
设置服务器 OpenLobby
ServerTravel

设置跳转的关卡路径,并设置参数为 listen

-
连接服务器(两种方法都行)
-
CallOpenLevel

主要通过 URL 跳转

-
CallClientTravel

主要通过 URL 跳转

- 角色蓝图内调用
1 键设置服务器,跳转至 Lobby 关卡;2、3 键均可连接服务器。

3.2 打包游戏
win 平台打包,发给小伙伴,连接同一局域网(WLAN),测试一下。

可以查看打包的日志过程。

压缩 Windows 里的内容,分享给小伙伴,启动测试 exe。

分别按下 1 、2、 3 测试结果,看是否可以一起玩耍。
3.3 实测结果
按下 1 结果:

等待小伙伴按下 2 、3 结果:


浙公网安备 33010602011771号