type
status
date
slug
summary
tags
category
icon
password
准备工作(安装SDK与测试)
下载完成后解压并打开 Samples 目录,该目录下是使用各个 EOS 模块的案例。为了测试,build AuthAndFirends 。下载好 SDK 后,在官网上创建一个项目。

上图是创建好的项目,将这个页面中的各种 Key 复制到 SampleConstants.h 文件中。然后切换到本页面的 Client 标签栏,滚动到页面底部 Add new client policy 。 根据自己需要选择一个或者创建一个自定义 policy ,为了方便测试,可以创建一个所有 Features 都开启的 policy。创建完 policy 后再创建一个使用该 policy 的 client ,这样做以后,上图的 client 部分就会多出一个 client 。可以将它的 ID 和 Secret 复制到 SampleConstants.h 中,接着就可以开始本地调试了。

在调试前,还应该在上图页面中配置一下。在 Linked Clients 中添加之前创建的 client ,点开检查下 Permissions (不一定要修改)。按照下图方法就可测试登录:

集成到项目中
打开在需要集成 EOS 的项目目录,如果没有 Plugins 目录则创建一个,将引擎目录下(UE_XX\Engine\Plugins\Online)的 OnlineSubsystemEOS 目录拷贝到项目目录下的 Plugins 目录中,接着重新编译项目即可。

在插件设置中开启这个插件,如下图:

在项目设置的插件栏目找到这个插件名,将 https://dev.epicgames.com/portal 中对应项目的项目设置中的 key 复制并设置,如下图:

添加配置到 项目目录/Config/DefaultEngine.ini 中,配置内容如下:
登录与创建 Session 功能
只有用户登录后,才能进行创建 Session、销毁 Session 等操作。首先在项目的 项目名.Build.cs 中添加模块:
"OnlineSubsystem", "OnlineSubsystemEOS"
。在项目中创建一个 GameInstance,并在项目设置中设置为当前的 GameInstance 。C++ 代码如下: 实现代码如下:
为了测试,创建一个 Widget :


在角色蓝图中的 BeginPlay 中令其开局创建:

下图为跑通的 Log:

登录工具
上面的代码每次运行游戏都要在弹出的网页登录,非常麻烦,可以使用官方提供的工具简化流程。在下载的 SDK 目录中寻找工具(EOS-SDK-30020700-vX.X.X-new\SDK\Tools\EOS_DevAuthTool-win32-x64-X.X.X)。解压后打开该目录中的 DevAuthTool ,登录:

修改 Login 函数:
此时,不需要频繁登录了。
EOS Plus
使用 EOS Plus ,可以同时支持多个平台,比如同时支持 Steam 和 Epic 平台。首先开启 Steam 插件。

在 https://dev.epicgames.com/portal 中,找到对应项目的项目设置,切换到 Identity Provider标签栏,添加一个 Identity Provider 。

480 是 Steam 的测试 id。
Encryption Key 为:ed9386073647cea58b7721490d59ed445723f0f66e7414e1533ba33cd803bdbd
为了开启 EOS Pluse 并兼容 Steam,需要修改项目目录 Config 下的 BaseEngine.ini 文件,配置如下:
此时启动游戏,如果 Steam 开启并登录了,游戏中就会显示 Steam 面板。
销毁会话
在
UEOSGameInstance
中添加代码: 在蓝图中创建 Destroy Session 按钮,绑定
DestroySession
函数即可。获取好友列表
代码如下:
显示 UI
显示好友与邀请好友 UI,代码如下:
寻找并加入 Session
代码如下: