Osiągnięcia w grach na Unity

W tym artykule opisujemy, jak używać osiągnięć w usługach Gier Play w grach na platformie Unity. Zakładamy, że masz już skonfigurowany projekt i wtyczkę Gry Google Play do silnika Unity, zgodnie z opisem w przewodniku dla początkujących.

Tworzenie osiągnięcia

Podczas konfigurowania projektu i wtyczki utwórz osiągnięcia w Konsoli Google Play, a następnie zaktualizuj wtyczkę o zasoby Androida dla swoich osiągnięć. Więcej informacji o tworzeniu osiągnięć w Konsoli Play znajdziesz w przewodniku po osiągnięciach.

Odkrywanie i odblokowywanie osiągnięcia

Aby odblokować osiągnięcie, użyj metody Social.ReportProgress z wartością postępu 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
    });

Zgodnie z oczekiwanym działaniem metody Social.ReportProgress, wartość 0.0f oznacza, że osiągnięcie zostało odkryte, a postęp 100.0f oznacza, że zostało odblokowane.

Aby odkryć osiągnięcie, które było wcześniej ukryte, bez jego odblokowywania, wywołaj metodę Social.ReportProgress z wartością 0.0f.

Zwiększanie osiągnięcia

Jeśli osiągnięcie jest przyrostowe, implementacja usług Gier Play metody Social.ReportProgress będzie próbować zachować się zgodnie z oczekiwanym działaniem interfejsu Social API w Unity. Zachowanie może się jednak różnić, dlatego nie zalecamy używania metody Social.ReportProgress w przypadku osiągnięć przyrostowych. Zamiast tego użyj metody PlayGamesPlatform.IncrementAchievement, która jest rozszerzeniem usług Gier 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
    });

Wyświetlanie interfejsu osiągnięć

Aby wyświetlić wbudowany interfejs wszystkich osiągnięć, wywołaj metodę Social.ShowAchievementsUI.

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