Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 统一社交API_Android_Ios_Unity3d_Game Center_Google Play Games - Fatal编程技术网

Android 统一社交API

Android 统一社交API,android,ios,unity3d,game-center,google-play-games,Android,Ios,Unity3d,Game Center,Google Play Games,我们正在为iOS和Android编写Unity3D应用程序,我们希望使用提供的社交API在iOS(使用GameCenter)和Android(使用Google Play游戏服务)上检索和发布高分 为了保持应用程序简单、重量低,并避免交叉编译额外设置,我们不希望使用外部插件(除非第4点是正确的) 我在谷歌上搜索文档和教程,找到了。 实现是在C#中完成的,但是由于Unity指南也提供了C#版本,所以它直接向前推进了 然而,我们无法完成这项工作,可能也是因为我们不太了解这个API是如何工作的 首先:U

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

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

我在谷歌上搜索文档和教程,找到了。 实现是在C#中完成的,但是由于Unity指南也提供了C#版本,所以它直接向前推进了

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

首先:Unity指南指出“它[api]为不同的社交后端提供了统一的接口,如XBox Live或GameCenter”,但在实现中没有指定使用哪个社交后端。团结是怎么知道的?它根据平台进行切换

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

Authenticated, checking achievements

Error: no achievements found

Successfully reported achievement progress
但在编辑器中运行应用程序时,在为windows或Bluestack中使用的apk构建中,当我调用函数Social.ShowLeaderboardUI()时,我会收到相同的消息;那是

ShowLeaderboardUI not implemented
我可以从编辑器和exe中得到它,但BlueStack模仿Android,如果它不提供google play服务,我会感到惊讶。然而,我也读到了“沙盒模式”,它应该在编辑器中运行,这引出了第三点:

我找不到一种方法来设置这个沙盒模式,至少在那个指南中没有

第四点:Unity有一个GameCenter类,但没有用于Google Play Games服务的类,所以:我可以用iOS做我想做的事情,但我需要一个外部插件来实现Android的ISocial接口

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

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


提前感谢安卓系统

要将Google Play服务集成到Unity中,您需要使用插件。你可以找到谷歌支持的插件。您可以找到有关排行榜工作方式的信息。它的基本工作原理是:

  • 您可以在中创建排行榜
  • 您向创建的排行榜提交分数(在您确定的适当时间)
  • Google Play Services会发回一个回复,告知这是否是一个高分
  • 我建议您看看这个示例,因为它演示了如何实施排行榜。此外,您确实应该在物理设备上测试这一点,因为模拟器在处理Google Play服务和帐户登录时可能会遇到问题


    就认证而言,谷歌Play服务为您提供大部分认证服务。您可能可以在示例(
    Social.localUser.Authenticate
    )中看到更多内容。

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

    非常感谢,明天我将尝试您建议的一切。对于iOS上的GameCenter,您能否确认我已经在Unity上使用GameCenterPlatform类获得了所需的一切?此外,您可能需要评估在iOS上使用Google Play游戏服务是否也能满足您的需要,它还有一个额外的好处,那就是在iOS和Android上共享排行榜和多人游戏实例。这很好,但不幸的是,我不是这个决定的负责人,我们被明确要求在游戏上使用GameCenteriOS@MastErAldo我对iOS不太熟悉,但是我相信你不需要任何插件或者类似的东西,Unity拥有你所需要的一切。文件说默认情况下,GameCenter是在iOS上使用的。我可以确认GooglePlay插件即使在Bluestack上也能很好地工作。只有一个注意事项:项目页面上的注意事项并不足以让它正常工作,我遵循了本教程:正确设置所有内容。还有一个注意事项:视频中的开发人员忘记提到这行代码:PlayGamesPlatform.Activate(),这是需要调用的第一个方法,甚至在Authenticate()之前