Unity 社交 API

Posted

技术标签:

【中文标题】Unity 社交 API【英文标题】:Unity Social API 【发布时间】:2015-06-06 16:22:59 【问题描述】:

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

为了让应用程序保持简单、重量轻并避免交叉编译额外设置,我们不希望使用外部插件(除非第 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,如果它不提供 google play 服务,我会感到惊讶。但是,我还阅读了有关“沙盒模式”的信息,该模式应该在编辑器中运行,这导致了第三点:

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

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

第五点:沙盒和部署模式下如何处理认证?

如您所见,我肯定在编码方面、概念方面或两者兼而有之。您能否提供有关如何实现我需要的分步程序?我不需要获取源代码,但如果有人能很好地解释我这个 API 是如何工作的,那就太好了。

提前致谢

【问题讨论】:

【参考方案1】:

对于Android

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

    您在Google Play Developer Console 中创建排行榜 您将分数提交到创建的排行榜(只要您确定合适的时间) Google Play 服务会发回一个响应,告知它是否是高分。

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

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

【讨论】:

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

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

【讨论】:

以上是关于Unity 社交 API的主要内容,如果未能解决你的问题,请参考以下文章

Facebook Api 集成社交领先怪胎

Keycloak社交登录休息api

所有社交网站的单一 API? [关闭]

PHP 的社交网络 API

如何在 laravel 中使用社交名流和护照创建 REST API

我如何通过 jHipster REST api 进行社交登录?