在线服务社交接口(Online Services Social Interface) 管理用户之间的关系。其中包括:
- 检索和查看玩家的好友列表。
- 发送好友邀请。
- 接受/拒绝好友邀请。
- 查看阻止的玩家的列表。
- 阻止其他玩家。
API 概述
函数
下表概述了社交接口提供的函数:
| 函数 | 说明 |
|---|---|
| 查看 | |
QueryFriends |
查询玩家的好友列表。 |
GetFriends |
检索 QueryFriends 缓存的好友列表。 |
| 邀请(Invite) | |
SendFriendInvite |
发送好友邀请。 |
AcceptFriendInvite |
接受好友邀请。 |
RejectFriendInvite |
拒绝好友邀请。 |
| 阻止 | |
QueryBlockedUsers |
查询阻止的用户列表。 |
GetBlockedUsers |
检索 QueryBlockedUsers 缓存的阻止的用户列表。 |
BlockUser |
阻止指定用户。 |
| 事件监听 | |
OnRelationshipUpdated |
更新好友列表所触发的事件。 |
主结构体
社交接口主要通过 FFriend 结构体传达其功能,并使用特定于函数的结构体传递参数和返回值。
FFriend
| 成员 | 类型 | 说明 |
|---|---|---|
FriendId |
FAccountId |
此好友的账号ID。 |
DisplayName |
FString |
显示此好友的姓名。 |
Nickname |
FString |
此好友的本地昵称。 查阅你的平台的在线服务的文档,了解可用性。 |
Relationship |
ERelationship |
与此好友的关系。 |
枚举类
ERelationship 枚举的类将保存本地用户与访问它所通过的 Ffriend 结构体表示的在线用户之间的关系状态。
ERelationship
| 值 | 说明 |
|---|---|
Friend |
好友 |
NotFriend |
不是好友 |
InviteSent |
已发送给用户的邀请。 |
InviteReceived |
从用户收到的邀请。 |
Blocked |
本地用户阻止了此用户。 |
流程
查看好友
启动游戏时,玩家查看哪些好友在线。为此, QueryFriends 使用社交接口缓存玩家的好友列表,然后 GetFriends 检索之前缓存的好友列表以供读取。现在玩家可以查看其好友列表,决定是否邀请其好友加入大厅并一起进入游戏会话。
邀请好友
与好友和其他在线玩家一起玩游戏后,玩家认识了一起玩得开心的其他几个玩家。玩家决定向其中两个在线玩家发送好友邀请。SendFriendInvite 在每次调用时向单个提供的玩家提供友谊邀请。其中一个在线玩家看到邀请并拒绝了。游戏调用 RejectFriendInvite 来拒绝玩家的邀请。
与此同时,第二个在线玩家接受了邀请。调用 AcceptFriendInvite 接受玩家的邀请。此友谊接受操作会针对发送邀请的玩家和接受邀请的在线玩家触发 OnRelationshipUpdated 事件。
阻止用户
在与新好友玩游戏的过程中,玩家认识了另一个在线玩家。这次,玩家决定以后不想与此在线玩家互动。玩家前往阻止此在线玩家。玩家可以查询其阻止的列表,查看自己阻止的在线玩家。QueryBlockUsers 缓存接口中的信息,后续调用 GetBlockedUsers 会检索阻止的玩家的列表。如果相关在线玩家没有显示在此列表中,调用 BlockUser 会将该在线玩家添加到玩家的阻止列表。
根据你的平台,邀请和阻止API可能会弹出平台对话框,以执行关联的操作。如需了解更多信息,请查阅你的特定平台的文档。
从在线子系统转换代码
更多信息
头文件
直接查阅 Social.h 头文件,根据需要了解更多信息。社交接口头文件 Social.h 位于以下目录中:
UNREAL_ENGINE_ROOT\Engine\Plugins\Online\OnlineServices\Source\OnlineServicesInterface\Public\Online
如需有关如何获取UE源代码的说明,请参阅关于下载虚幻引擎源代码的文档。