根据运行你的游戏客户端的游戏平台,有不同类型的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
文件中的以下步骤, 虚幻构建工具 将管理库的链接和打包
- 将库的链接时间名称添加至
PublicAdditionalLibraries
。 - 将库的链接时间文件添加至
RuntimeDependencies
。
例如, <Project>.Build.cs
文件应包括类似如下代码:
打包
大多数情况下,将EOS SDK的运行时间库放在游戏可执行文件所在目录中,保证游戏可在运行时找到它。某些平台有放置该库的特定目录。查看平台特定页面了解详情。
加载
某些平台需在运行时显示加载EOS SDK的动态模块。欲了解各平台此类相关信息,参见平台特定页面。若未注明流程,则无需显示加载。
使用虚幻加载
凡使用虚幻构建工具设置游戏打包,所有平台可使用同一流程。使用 FPlatformProcess::GetDllHandle
加载模块,使用 FPlatformProcess::FreeDllHandle
卸载模块。
内存函数
当你通过 EOS_InitializeOptions
提供自定义分配器时,EOS SDK可以使用你开发的内存管理系统。如果未提供分配器,EOS SDK使用标准分配器,如 malloc
、 free
和 realloc
。
但主机例外,它们需要自定义分配器。主机上的内存管理是一个复杂且高度依赖平台的过程。为了防止出现意外行为,主机需要提供这些自定义分配器,确保所有内存管理都由应用程序执行。请参阅第一方SDK文档,了解对你当前平台内存管理工作方式的详细说明。
虚幻的内存函数
虚幻引擎和EOS SDK配合使用时,提供给 EOS_InitializeOptions
的分配器可映射至 FMemory::Malloc
、 FMemory::Realloc
和 FMemory::Release
。