UE5学习笔记6-游戏模式

一、环境说明,UE5.4 + vs2022 + win11

二、游戏模式

        当前创建的游戏模式是在游戏时在一定人数情况下进行地图转移

三、创建一个C++类继承GameModel类

        1.创建类,写代码

         xxx.h

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/GameMode.h"
#include "LobbyGameMode.generated.h"

/**
 * 
 */
UCLASS()
class BLASTER_API ALobbyGameMode : public AGameMode
{
	GENERATED_BODY()
	
public:
	virtual void PostLogin(APlayerController* NewPlayer) override;
};

        xxx.cpp

// Fill out your copyright notice in the Description page of Project Settings.


#include "LobbyGameMode.h"
#include "GameFramework/GameState.h"

void ALobbyGameMode::PostLogin(APlayerController* NewPlayer)
{
	Super::PostLogin(NewPlayer);

	int32 NumberPlayers = GameState.Get()->PlayerArray.Num(); /** 通过GameState.Get()获得游戏状态指针 在获得玩家数量 */
	/*GEngine->AddOnScreenDebugMessage(
		-1,
		15.f,
		FColor::Yellow,
		FString::Printf(TEXT("%d"), NumberPlayers)
	);*/

	if (NumberPlayers == 2)
	{
		UWorld* World = GetWorld();
		if (World)
		{
			bUseSeamlessTravel = true; /** 无缝旅行标志位 */
			World->ServerTravel(FString("/Game/Maps/BlasterMap?listen")); /** 以侦听服务器打开,供客户端连接到 */
		}
	}
}

        2.创建对应蓝图类

         3.双击打开蓝图类->点击类设置->将细节中的类的默认pawn类设置成人物蓝图类如图

         4.将地图的世界场景设置中游戏模式的游戏模式重载设置为刚才的游戏模式蓝图类

         5.创建一个中间地图起名为travleve在项目设置中将默认地图的转移地图设置为travleve

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值