我们正在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是如何工作的,那就太棒了。
提前致谢
答案 0 :(得分:6)
Android :
要将Google Play服务集成到Unity中,您需要使用插件。您可以找到Google支持的插件here。您可以找到有关排行榜如何运作的信息here。基本上它是如何工作的:
我建议您查看Cubic Pilot_4.6示例,了解如何实现排行榜。此外,由于模拟器在处理Google Play服务和帐户登录方面可能遇到问题,因此您真的应该在物理设备上对此进行测试。
就身份验证而言,Google Play服务会为您处理大部分内容。你可以在样本中看到更多(Social.localUser.Authenticate
)。
答案 1 :(得分:0)
目前的实施仅为GameCenter和XboxLive提供实施。有一个属性Social.Active,可用于修改使用的社交平台。您可以设置一个实现ISocialPlatform的对象,但我不确定该接口是否完全打开 - 因此,我不确定是否有人可以实现...