Guidelines and References

不同类型EOS SDK的相关信息(针对运行游戏客户端的游戏平台)。

阅读时间5分钟

根据运行你的游戏客户端的游戏平台,有不同类型的SDK下载包可供使用。

如需查看有关如何获得EOS SDK下载包的概述和指引,请参阅以下文档:入门步骤:下载EOS SDK

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

你只能在拥有适当权限的情况下访问控制台文档。请参阅入门步骤文档,获取有关如何访问控制台EOS SDK及其相关文档的更多信息。

注意: 如要使用Epic在线服务(EOS)SDK,你的本地网络、路由器和防火墙必须允许对特定主机地址的访问。这些主机地址的完整列表,请参阅防火墙注意事项文档。

支持平台

有关哪些平台支持使用EOS SDK进行产品开发和发布,请参阅以下文档:支持平台

注意:如需了解各个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 文件:

使用不同的EOS接口时,添加以下 #includes

对于 eos_[interface]_types.h ,将 [interface] 替换为你要使用的接口:

自定义跨平台示例

如果 eos_platform_prereqs.h 不适合项目的构建系统,它可以引用自定义编译器提供的宏。例如:

单平台示例

当单平台需要为EOS好友服务使用额外的 #includes 时,请使用以下代码:

对于 eos_[interface]_types.h ,将 [interface] 替换为你要使用的接口:

链接

链接项目时,需要将EOS SDK的链接时间库添加至项目的链接命令。对于大多数平台,运行时库也需要手动加载。

使用虚幻构建系统进行链接

使用 虚幻引擎 时,若遵循 <Project>.Build.cs 文件中的以下步骤, 虚幻构建工具 将管理库的链接和打包

  1. 将库的链接时间名称添加至 PublicAdditionalLibraries
  2. 将库的链接时间文件添加至 RuntimeDependencies

例如, <Project>.Build.cs 文件应包括类似如下代码:

打包

大多数情况下,将EOS SDK的运行时间库放在游戏可执行文件所在目录中,保证游戏可在运行时找到它。某些平台有放置该库的特定目录。查看平台特定页面了解详情。

加载

某些平台需在运行时显示加载EOS SDK的动态模块。欲了解各平台此类相关信息,参见平台特定页面。若未注明流程,则无需显示加载。

使用虚幻加载

凡使用虚幻构建工具设置游戏打包,所有平台可使用同一流程。使用 FPlatformProcess::GetDllHandle 加载模块,使用 FPlatformProcess::FreeDllHandle 卸载模块。

内存函数

当你通过 EOS_InitializeOptions 提供自定义分配器时,EOS SDK可以使用你开发的内存管理系统。如果未提供分配器,EOS SDK使用标准分配器,如 mallocfreerealloc

但主机例外,它们需要自定义分配器。主机上的内存管理是一个复杂且高度依赖平台的过程。为了防止出现意外行为,主机需要提供这些自定义分配器,确保所有内存管理都由应用程序执行。请参阅第一方SDK文档,了解对你当前平台内存管理工作方式的详细说明。

虚幻的内存函数

虚幻引擎和EOS SDK配合使用时,提供给 EOS_InitializeOptions 的分配器可映射至 FMemory::MallocFMemory::ReallocFMemory::Release