【问题标题】:Unity Social APIUnity 社交 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 是如何工作的,那就太好了。

提前致谢

【问题讨论】:

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


    【解决方案1】:

    对于Android

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

    1. 您在Google Play Developer Console 中创建排行榜
    2. 您将分数提交到创建的排行榜(只要您确定合适的时间)
    3. 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 的对象,但我不确定该接口是否完全开放 - 因此,我不确定是否有人可以实现它..

    【讨论】:

      猜你喜欢
      • 2017-08-28
      • 1970-01-01
      • 2016-07-22
      • 2014-04-10
      • 2016-12-25
      • 1970-01-01
      • 1970-01-01
      • 2019-06-10
      • 2019-04-26
      相关资源
      最近更新 更多