Osiągnięcia w grach na Unity

W tym artykule opisujemy, jak używać osiągnięć w usługach gier Play w grach na platformę Unity. Zakłada się, że projekt i wtyczka Gier Google Play do silnika Unity zostały skonfigurowane zgodnie z przewodnikiem dla początkujących.

Tworzenie osiągnięcia

Po skonfigurowaniu projektu i wtyczki utwórz osiągnięcia w Konsoli Google Play, a następnie zaktualizuj wtyczkę za pomocą zasobów Androida dla tych osiągnięć. Szczegółowe informacje o tworzeniu osiągnięć w Konsoli Play znajdziesz w przewodniku po osiągnięciach.

Odkrywanie i odblokowywanie osiągnięć

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 funkcji Social.ReportProgress wartość 0,0f oznacza, że osiągnięcie zostało ujawnione, a wartość 100,0f oznacza, że zostało odblokowane.

Aby ujawnić osiągnięcie, które było wcześniej ukryte bez odblokowywania go, wywołaj funkcję Social.ReportProgress z wartością 0,0f.

Zwiększanie osiągnięcia

Jeśli osiągnięcie jest przyrostowe, implementacja Gier Play funkcji Social.ReportProgress będzie próbować zachowywać się zgodnie z oczekiwanym działaniem interfejsu Social API Unity. Zachowanie może nie być identyczne, dlatego nie zalecamy używania funkcji Social.ReportProgress w przypadku osiągnięć przyrostowych. Zamiast tego użyj metody PlayGamesPlatform.IncrementAchievement, która jest rozszerzeniem Usług Google 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 funkcję Social.ShowAchievementsUI.

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