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 结果: