Platform Implementation for EOS

关于在主机上实现EOS SDK的指南和参考。

阅读时间5分钟

要运行 Epic在线服务 (EOS)SDK,必须执行项目链接、打包和加载流程中的数个前提步骤,确保目标平台加载并运行EOS运行时。本页提供此类流程的一般信息,而平台专属文档下列示的页面更详细地讲述了各平台需求的相关信息。本页还介绍如何通过EOS SDK使用 虚幻编译系统

有关EOS SDK以及主机平台(PlayStation、Xbox、任天堂Switch等)的文档,你必须配置你的组织获取(organization access),文档将在第一方批准后,成为SDK投放的一部分。

主机平台版本

当前版本的EOS SDK支持以下主机平台版本:

主机平台 最新版本 最低版本
PlayStation 4 Orbis v10.008.001 Orbis v9.508.001
PlayStation 5 Prospero v6.00.00.38 Prospero v5.00.00.33
Xbox GDK June 2022 QFE2 (220602) March 2022 QFE1 (220301)
Nintendo Switch 14.3.0 13.3.2_4.6.6

线程安全

EOS SDK无法认定为线程安全的。

如果你的多个EOS SDK调用不在同一个线程上,请确保协调和同步你的调用。

编译

所有的EOS SDK头文件都必须包含 eos_base.h 头文件,但某些平台还需要额外的一些设置才能调用 eos_base.h。所有需要额外设置的平台都会在平台规格文档中有所提及,并且有一个 <Platform>/eos_<Platform>_base.h 文件用于这个额外设置。

使用eos_platform_prereqs.h

EOS SDK提供了 eos_platform_prereqs.h 头文件来支持跨平台开发。如需使用 eos_platform_prereqs.h,请在构建需要包含特定平台的应用程序时,添加 EOS_BUILD_PLATFORM_NAME 宏。

在包含其他EOS SDK头文件前先包含 eos_platform_prereqs.h 头文件。

例如,如果你在使用虚幻编译系统,请在你的 <Project>.Build.cs 文件中添加以下代码:

if (!Target.IsInPlatformGroup(UnrealPlatformGroup.Windows) &&
!Target.IsInPlatformGroup(UnrealPlatformGroup.Unix) &&
!Target.IsInPlatformGroup(UnrealPlatformGroup.Apple) &&
!Target.IsInPlatformGroup(UnrealPlatformGroup.Android))
{
AppendStringToPublicDefinition("EOS_BUILD_PLATFORM_NAME",
Target.Platform.ToString());
}

在使用不同的EOS界面时,请添加以下 #includes

#include "eos_platform_prereqs.h"
#include "eos_sdk.h"
#include "eos_[interface]_types.h"

eos_[interface]_types.h 中,将 [interface] 替换为你正在使用的界面:

#include "eos_friends_types.h"
#include "eos_auth_types.h"
#include "eos_lobby_types.h"

自定义跨平台示例