# 【局域网多人游戏】
玩家A创建大厅,然后玩家B通过本地局域网连接,通过玩家A的局域网IP地址,如192.168.xx.xx进行多人联机。
需要创建默认第三人称模版项目,然后创建基础场景命名为Lobby。
在 Character 里使用蓝图进行测试多人联机。
# 蓝图实现方式
# c++实现方式
MPTestingCharacter.h
public:
/** 创建并进入大厅 */
UFUNCTION(BlueprintCallable)
void OpenLobby();
/** 方法A:进入大厅,传入大厅的IP地址 */
UFUNCTION(BlueprintCallable)
void CallOpenLevel(const FString& Address);
/** 方法B:进入大厅,传入大厅的IP地址 */
UFUNCTION(BlueprintCallable)
void CallClientTravel(const FString& Address);
MPTestingCharacter.cpp
void AMPTestingCharacter::OpenLobby()
{
UWorld* World = GetWorld();
if (World)
{
World->ServerTravel("/Game/ThirdPerson/Maps/Lobby?listen");
}
}
void AMPTestingCharacter::CallOpenLevel(const FString& Address)
{
UGameplayStatics::OpenLevel(this, *Address);
}
void AMPTestingCharacter::CallClientTravel(const FString& Address)
{
APlayerController* PlayerController = GetGameInstance()->GetFirstLocalPlayerController();
if (PlayerController)
{
PlayerController->ClientTravel(Address, ETravelType::TRAVEL_Absolute);
}
}
如下图所示使用蓝图进行测试,按数字键1即可创建大厅,然后在别的玩家处按2或者3进入大厅。
← 【ENetRole】 【使用委托】 →