UE5&C++ 多人 TPS 游戏(二)

1. LAN (local area network) 测试

编辑器内测试,如下图所示:

image

可以调整玩家数量,网络模式

2. 网络模式:

如之前(一)内所介绍,CS 可以 自身做服务器,也可以设专用服务器。

  • 运行 Standalone :将启动一个独立的游戏。此操作不会创建专用服务器,也不会自动连接到一个服务器。
  • 监听服务器运行:编辑器将同时用作服务器和客户端。基于客户端数量,可打开超出的额外实例。
  • 客户端运行:编辑器将用作客户端。将在场景后方启动服务器,以进行连接。

image

3. 创建一个 LAN

3.1 测试功能编写

image

具体代码如下:

点击查看代码
/** 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);
	}
}
  1. 设置服务器 OpenLobby
    ServerTravel
    image
    设置跳转的关卡路径,并设置参数为 listen
    image

  2. 连接服务器(两种方法都行)

  • CallOpenLevel
    image
    主要通过 URL 跳转
    image

  • CallClientTravel
    image
    主要通过 URL 跳转
    image

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

3.2 打包游戏

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

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

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

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

3.3 实测结果

按下 1 结果:
image

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

下一节:UE5&C++ 多人 TPS 游戏(三)

posted @ 2024-04-17 14:03  bok_tech  阅读(92)  评论(0)    收藏  举报