Unity 社交 API
Posted
技术标签:
【中文标题】Unity 社交 API【英文标题】:Unity Social API 【发布时间】:2015-06-06 16:22:59 【问题描述】:我们正在为 ios 和 android 编写 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的主要内容,如果未能解决你的问题,请参考以下文章