Unity 游戏中的成就

本主题介绍了如何在 Unity 游戏中使用 Play 游戏服务成就。本主题假设您已设置好项目和适用于 Unity 的 Google Play 游戏插件,详情请参阅《入门指南》。

创建成就

设置项目和插件时,请在 Google Play 管理中心创建成就,然后使用成就的 Android 资源更新插件。有关在 Play 管理中心创建成就的详细信息,请参阅《成就指南》。

显示和解锁成就

要解锁成就,请使用 Social.ReportProgress 方法并将进度值设置为 100.0f

    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 表示成就已解锁。

要显示之前隐藏但未解锁的成就,请调用 Social.ReportProgress 并将值设置为 0.0f。

递增成就

如果成就是递增的,Play 游戏的 Social.ReportProgress 实现将尝试遵循 Unity 社交 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();