代码拉取完成,页面将自动刷新
在项目设置中----->游戏----->资产管理器。在索引5 【LyraUserFacingExperienceDefinition】Lyra用户界面体验定义
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Engine/DataAsset.h"
#include "LyraUserFacingExperienceDefinition.generated.h"
class FString;
class UCommonSession_HostSessionRequest;
class UObject;
class UTexture2D;
class UUserWidget;
struct FFrame;
/** 用于在用户界面中显示体验并开始新会话的设置描述 */
UCLASS(BlueprintType)
class ULyraUserFacingExperienceDefinition : public UPrimaryDataAsset
{
GENERATED_BODY()
public:
/** 需要加载的具体地图 */
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience, meta=(AllowedTypes="Map"))
FPrimaryAssetId MapID;
/** 加载的游戏体验 */
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience, meta=(AllowedTypes="LyraExperienceDefinition"))
FPrimaryAssetId ExperienceID;
/** 作为 URL 选项传递给游戏的额外参数 */
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience)
TMap<FString, FString> ExtraArgs;
/** UI 中的主标题 */
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience)
FText TileTitle;
/** 第二标题 */
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience)
FText TileSubTitle;
/** 完整描述 */
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience)
FText TileDescription;
/** UI 中使用的图标 */
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience)
TObjectPtr<UTexture2D> TileIcon;
/** 加载屏幕小部件,用于加载进入(或退出)特定体验时显示 */
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=LoadingScreen)
TSoftClassPtr<UUserWidget> LoadingScreenWidget;
/** 如果为真,则这是一个默认体验,应该用于快速游玩,并在 UI 中优先考虑 */
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience)
bool bIsDefaultExperience = false;
/** 如果为真,则会在前端的体验列表中显示 */
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience)
bool bShowInFrontEnd = true;
/** 如果为真,游戏的重播将被记录 */
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience)
bool bRecordReplay = false;
/** 本次会话的最大玩家人数 */
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category=Experience)
int32 MaxPlayerCount = 16;
public:
/** 创建一个请求对象,用于使用这些设置实际开始一个会话 */
UFUNCTION(BlueprintCallable, BlueprintPure=false, meta = (WorldContext = "WorldContextObject"))
UCommonSession_HostSessionRequest* CreateHostingRequest(const UObject* WorldContextObject) const;
};
// Copyright Epic Games, Inc. All Rights Reserved.
#include "LyraUserFacingExperienceDefinition.h"
#include "CommonSessionSubsystem.h"
#include "Containers/UnrealString.h"
#include "UObject/NameTypes.h"
#include "Engine/GameInstance.h"
#include "Engine/Engine.h"
#include "Replays/LyraReplaySubsystem.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(LyraUserFacingExperienceDefinition)
UCommonSession_HostSessionRequest* ULyraUserFacingExperienceDefinition::CreateHostingRequest(const UObject* WorldContextObject) const
{
const FString ExperienceName = ExperienceID.PrimaryAssetName.ToString();
const FString UserFacingExperienceName = GetPrimaryAssetId().PrimaryAssetName.ToString();
UWorld* World = GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::ReturnNull);
UGameInstance* GameInstance = World ? World->GetGameInstance() : nullptr;
UCommonSession_HostSessionRequest* Result = nullptr;
if (UCommonSessionSubsystem* Subsystem = GameInstance ? GameInstance->GetSubsystem<UCommonSessionSubsystem>() : nullptr)
{
Result = Subsystem->CreateOnlineHostSessionRequest();
}
if (!Result)
{
// 无法使用子系统,因此创建一个
Result = NewObject<UCommonSession_HostSessionRequest>();
Result->OnlineMode = ECommonSessionOnlineMode::Online;
Result->bUseLobbies = true;
}
Result->MapID = MapID;
Result->ModeNameForAdvertisement = UserFacingExperienceName;
Result->ExtraArgs = ExtraArgs;
Result->ExtraArgs.Add(TEXT("Experience"), ExperienceName);
Result->MaxPlayerCount = MaxPlayerCount;
if (ULyraReplaySubsystem::DoesPlatformSupportReplays())
{
if (bRecordReplay)
{
Result->ExtraArgs.Add(TEXT("DemoRec"), FString());
}
}
return Result;
}
体验定义的数据资产列表:
DA_Convolution_ControlPoint、与你的队友一起保护控制点,增加你的得分并取得胜利。
DA_ExamplePlaylist、示例播放列表
DA_Expanse_TDM、在这个经典的对抗团队比赛中,找到并消灭足够的敌人以取胜。
DA_Frontend、游戏的主菜单
DA_ShooterGame_ShooterGym、ShooterCore 的小型测试关卡
DA_ShooterGame_ShooterPerf、性能测试地图
DA_TopDownArena_Multiplayer、在这款多人顶视角聚会游戏中,摧毁方块、收集增益道具,避免被炸毁!
DA_TopDownArena_Splode、在这款顶视角聚会游戏中,摧毁方块、收集增益道具,避免被炸毁。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。