Unity 游戏中的成就

本主题介绍了如何在 Unity 游戏中使用 Play 游戏服务成就,并假定您已按照入门指南中的说明设置您的项目和适用于 Unity 的 Google Play 游戏插件。

创建成就

在设置项目和插件时,请在 Google Play 管理中心内创建成就,然后使用适用于您的成就的 Android 资源更新插件。如需详细了解如何在 Play 管理中心内创建成就,请参阅成就指南

显示和解锁成就

如需解锁成就,请使用进度值为 100.0f 的 Social.ReportProgress 方法:

    using GooglePlayGames;
    using UnityEngine.SocialPlatforms;
    ...
    // unlock achievement (achievement ID "Cfjewijawiu_QA")
    Social.ReportProgress("Cfjewijawiu_QA", 100.0f, (bool success) => {
      // handle success or failure
    });

根据 Social.ReportProgress 的预期行为,值为 0.0f 表示已显示成就,进度为 100.0f 表示已解锁成就。

如需显示某项成就(之前处于隐藏状态)而不解锁该成就,只需调用值为 0.0f 的 Social.ReportProgress 即可。

分步成就

对于分步成就,Social.ReportProgress 的 Play 游戏实现会尝试依据 Unity 的 Social API 以遵循预期行为。不过,行为可能不完全相同,因此我们建议不要使用 Social.ReportProgress 来实现分步成就。请改用 PlayGamesPlatform.IncrementAchievement 方法,这是一项 Play 游戏扩展。

    using GooglePlayGames;
    using UnityEngine.SocialPlatforms;
    ...
    // increment achievement (achievement ID "Cfjewijawiu_QA") by 5 steps
    PlayGamesPlatform.Instance.IncrementAchievement(
        "Cfjewijawiu_QA", 5, (bool success) => {
            // handle success or failure
    });

显示成就界面

如需显示所有成就的内置界面,请调用 Social.ShowAchievementsUI

    using GooglePlayGames;
    using UnityEngine.SocialPlatforms;
    ...
    // show achievements UI
    Social.ShowAchievementsUI();