이 가이드에서는 Android 애플리케이션에서 업적 API를 사용하여 게임에서 업적을 달성하고 표시하는 방법을 보여줍니다. API는 com.google.android.gms.games
및 com.google.android.gms.games.achievements
패키지에서 찾을 수 있습니다.
시작하기 전에
아직 검토하지 않았다면 업적 게임 개념을 검토하는 것이 좋습니다.
업적 API를 사용하여 코딩을 시작하기 전에 다음을 수행합니다.
- 사용할 앱 설치 및 설정에 관한 안내를 따르세요. Google Play 게임즈 서비스를 Google Play 서비스 SDK 설정 가이드를 참조하세요.
- Google Play Console 가이드의 안내에 따라 게임에서 달성하거나 표시할 업적을 정의합니다.
- Android 샘플 페이지에서 업적 코드 샘플을 다운로드하여 검토합니다.
- 품질 체크리스트에 설명된 권장사항을 숙지합니다.
업적 클라이언트 가져오기
업적 API를 사용하려면 게임에서 먼저
AchievementsClient
객체 이렇게 하려면
Games.getAchievementClient()
메서드를 호출하고 활동과
현재 플레이어의 GoogleSignInAccount
. 이
자세한 내용은 Android 게임에서 로그인을 참조하세요.
업적 달성
업적을 달성하려면 AchievementsClient.unlock()
메서드를 호출하고
업적 ID를 전달합니다.
다음 코드 스니펫은 앱에서 업적이 달성되는 방법을 보여줍니다.
Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .unlock(getString(R.string.my_achievement_id));
업적이 증분 유형인 경우 (즉, 업적 달성을 위해 여러 단계가 필요함)
대신 AchievementsClient.increment()
를 호출하세요.
다음 코드 스니펫은 앱에서 플레이어의 업적을 늘리는 방법을 보여줍니다.
Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(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() { Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .getAchievementsIntent() .addOnSuccessListener(new OnSuccessListener<Intent>() { @Override public void onSuccess(Intent intent) { startActivityForResult(intent, RC_ACHIEVEMENT_UI); } }); }
기본 업적 UI의 예가 아래에 나와 있습니다.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/games/services/android/images/Achievements_Android.png?authuser=19&hl=ko)