Unity Social API

时间:2015-04-01 20:56:45

标签: android ios unity3d game-center google-play-games

我们正在Unity3D中为iOS和Android编写应用程序,我们希望使用提供的Social API在iOS(使用GameCenter)和Android(使用Google Play游戏服务)上检索和发布highScores。

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

我搜索了文档和教程,然后找到了THIS ONE。 实现已在C#中完成,但由于Unity指南也提供了c#版本,因此它直接进行了。

然而,我们无法完成这项工作,可能也是因为我们不太清楚这个API是如何运作的。

首先:Unity指南声明"它[api]为不同的社交后端提供统一的界面,例如XBox Live或GameCenter",但是在实现中没有指定正在使用社交后端。团结怎么知道呢?它根据平台切换?

第二:我在各种指南中都明白,为显示排行榜而提供的GUI是由主机平台直接提供的,从控制台日志中我得到以下成功消息:

Authenticated, checking achievements

Error: no achievements found

Successfully reported achievement progress

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

ShowLeaderboardUI not implemented

我可以期待它来自编辑器和exe,但BlueStack模拟Android,如果它不能提供谷歌播放服务,我会感到惊讶。不过我也读到了关于沙盒模式"哪一个应该在编辑器中运行,这导致第三点:

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

第四点:Unity有一个GameCenter课程,但没有Google Play游戏服务的课程,所以:我可以用iOS做我想要的但是我需要一个外部插件来实现Android的ISocial界面?

第五点:如何在沙盒和部署模式下处理身份验证?

正如你所看到的,我肯定在编码方面,概念方面或两者都缺少某些东西。您能否提供有关如何实现我所需要的一步一步的程序?我不需要获取源代码片段,但如果有人能够很好地解释这个API是如何工作的,那就太棒了。

提前致谢

2 个答案:

答案 0 :(得分:6)

Android

要将Google Play服务集成到Unity中,您需要使用插件。您可以找到Google支持的插件here。您可以找到有关排行榜如何运作的信息here。基本上它是如何工作的:

  1. 您可以在Google Play Developer Console
  2. 中创建排行榜
  3. 您将分数提交给创建的排行榜(当您确定适当的时间时)
  4. Google Play服务会发回回复,告知其是否为高分。
  5. 我建议您查看Cubic Pilot_4.6示例,了解如何实现排行榜。此外,由于模拟器在处理Google Play服务和帐户登录方面可能遇到问题,因此您真的应该在物理设备上对此进行测试。

    就身份验证而言,Google Play服务会为您处理大部分内容。你可以在样本中看到更多(Social.localUser.Authenticate)。

答案 1 :(得分:0)

目前的实施仅为GameCenter和XboxLive提供实施。有一个属性Social.Active,可用于修改使用的社交平台。您可以设置一个实现ISocialPlatform的对象,但我不确定该接口是否完全打开 - 因此,我不确定是否有人可以实现...