Android 게임의 업적

이 가이드에서는 Android 애플리케이션에서 업적 API를 사용하여 게임에서 업적을 달성하고 표시하는 방법을 보여줍니다. API는 com.google.android.gms.gamescom.google.android.gms.games.achievements 패키지에서 찾을 수 있습니다.

시작하기 전에

아직 검토하지 않았다면 업적 게임 개념을 검토하는 것이 좋습니다.

업적 API를 사용하여 코딩을 시작하기 전에 다음을 수행합니다.

업적 클라이언트 가져오기

업적 API를 사용하려면 게임에서 먼저 AchievementsClient 객체 이렇게 하려면 Games.getAchievementClient() 메서드를 호출하고 활동을 전달합니다.

업적 달성

업적을 달성하려면 AchievementsClient.unlock() 메서드를 호출하고 업적 ID를 전달합니다.

다음 코드 스니펫은 앱에서 업적이 달성되는 방법을 보여줍니다.

PlayGames.getAchievementsClient(this).unlock(getString(R.string.my_achievement_id));

업적이 증분 유형인 경우 (즉, 업적 달성을 위해 여러 단계가 필요함) 대신 AchievementsClient.increment()를 호출하세요.

다음 코드 스니펫은 앱에서 플레이어의 업적을 늘리는 방법을 보여줍니다.

PlayGames.getAchievementsClient(this).increment(getString(R.string.my_achievement_id), 1);

업적을 달성하기 위해 추가 코드를 작성할 필요는 없습니다. Google Play 게임즈 서비스 필요한 단계 수에 도달하면 업적이 자동으로 달성됩니다.

게임에 리소스 ID별로 업적이 참조될 수 있도록 strings.xml 파일에서 업적 ID를 정의하는 것이 좋습니다. 업데이트 및 로드를 호출할 때 또한 권장사항을 따라 API 할당량을 초과할 수 있습니다

업적 표시

플레이어의 업적을 표시하려면 AchievementsClient.getAchievementsIntent()를 호출합니다. 만들 Intent을(를) 받을 수 있습니다. 사용자 인터페이스를 사용합니다. 그러면 게임이 startActivityForResult를 호출하여 UI를 불러올 수 있게 됩니다.

다음 코드 스니펫은 앱이 기본 업적 사용자 인터페이스를 표시하는 방법을 보여줍니다. 스니펫에서 RC_ACHIEVEMENT_UI는 게임에서 요청 코드로 사용하는 임의의 정수입니다.

private static final int RC_ACHIEVEMENT_UI = 9003;

private void showAchievements() {
  PlayGames.getAchievementsClient(this)
      .getAchievementsIntent()
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_ACHIEVEMENT_UI);
        }
      });
}

기본 업적 UI의 예가 아래에 나와 있습니다.