Unity 社交 API

Unity Social API

我们正在 Unity3D 中为 iOS 和 Android 编写一个应用程序,我们想使用提供的社交 API 来检索和 post 高分在 iOS(使用 GameCenter)和 Android(使用 Google Play 游戏服务)上。

为了保持应用程序简单、重量轻并避免交叉编译额外设置,我们不希望使用外部插件(除非第 4 点为真)。

我google四处寻找文档和教程,我找到了THIS ONE。 实现是在 C# 中完成的,但由于 Unity 指南还提供了一个 c# 版本,所以一切都很顺利。

但是我们无法完成这项工作,可能也是因为我们不太了解 API 的真正工作原理。

首先:Unity 指南指出 "It [the api] provides a unified interface to different social back-ends, such as XBox Live or GameCenter",但在实现中并未指定使用哪个社交后端。团结怎么知道的?它根据平台切换?

其次:我在各种指南中了解到,用于显示排行榜的 GUI 由主机平台直接提供,并且从控制台日志中我得到以下成功消息:

Authenticated, checking achievements

Error: no achievements found

Successfully reported achievement progress

但是 运行 在编辑器中,在为 windows 构建的应用程序或 BlueStacks 中使用的 apk 中,我在调用函数 Social.ShowLeaderboardUI 时收到相同的消息();这是

ShowLeaderboardUI not implemented

我可以从编辑器和 exe 中得到它,但 BlueStack 模拟 Android 如果它不提供 google 播放服务我会感到惊讶。然而,我也读到了 "sandbox mode",它应该在编辑器中 运行,这导致了第三点:

我找不到设置此沙盒模式的方法,至少从该指南中找不到。

第四点:Unity 有一个 GameCenter class,但没有 class 用于 Google Play 游戏服务,所以:我可以用 [=47= 做我想做的事] 但我需要一个外部插件来实现 Android?

的 ISocial 接口

第五点:如何在沙箱和部署模式下进行身份验证?

如您所见,我肯定在编码方面、概念方面或两者都遗漏了一些东西。你能提供一个关于如何实现我所需要的步骤的步骤吗?我不需要获取源代码,但如果有人能很好地向我解释这个 API 是如何工作的,那就太好了。

提前致谢

对于Android:

要将 Google Play 服务集成到 Unity 中,您需要使用插件。您可以找到 Google 支持的插件 here. You can find information on how leaderboards work here。本质上它是如何工作的:

  1. 您在 Google Play Developer Console
  2. 中创建了排行榜
  3. 您向创建的排行榜提交分数(在您确定合适的时间)
  4. Google Play 服务发回一个响应,告知它是否是高分。

我建议您查看 Cubic Pilot_4.6 示例,因为它演示了如何实现排行榜。此外,您真的应该在物理设备上测试它,因为模拟器可能无法处理 Google Play 服务和帐户登录。

就身份验证而言,Google Play 服务会为您处理大部分工作。您可能会在示例中看到更多信息 (Social.localUser.Authenticate)。

当前实施仅提供 GameCenter 和 XboxLive 的实施。有一个 属性 Social.Active which can be used to modify what social platform is used. You can set a object which implements ISocialPlatform 但我不确定该接口是否完全开放 - 因此,我不确定是否有人可以实现它..