รางวัลพิเศษในเกม Android

เราจะนํา SDK ของ Games v1 ออกในปี 2026 ตามการเลิกใช้งาน Google Sign-In API หลังจากเดือนกุมภาพันธ์ 2025 คุณจะเผยแพร่เกมที่เพิ่งผสานรวมกับ SDK v1 ของ Games ใน Google Play ไม่ได้ เราขอแนะนำให้คุณใช้ SDK v2 ของ Games แทน
แม้ว่าเกมที่มีอยู่ซึ่งผสานรวมกับเกมเวอร์ชัน 1 ก่อนหน้านี้จะยังคงใช้งานได้อีก 2-3 ปี แต่เราขอแนะนำให้ย้ายข้อมูลไปยัง v2 ตั้งแต่วันที่ 1 มิถุนายน 2025 เป็นต้นไป
คู่มือนี้มีไว้สำหรับการใช้ SDK บริการเกมของ Play เวอร์ชัน 1 ดูข้อมูลเกี่ยวกับ SDK เวอร์ชันล่าสุดได้ในเอกสารประกอบ v2

คู่มือนี้แสดงวิธีใช้ API รางวัลพิเศษในแอปพลิเคชัน Android เพื่อปลดล็อกและแสดงรางวัลพิเศษในเกม โดยคุณจะดู API ได้ในแพ็กเกจ com.google.android.gms.games และ com.google.android.gms.games.achievements

ก่อนเริ่มต้น

คุณอาจต้องอ่านแนวคิดเกี่ยวกับเกมรางวัล หากยังไม่ได้ดำเนินการ

ก่อนเริ่มเขียนโค้ดโดยใช้ Achievements API

รับไคลเอ็นต์รางวัลพิเศษ

หากต้องการเริ่มใช้ Achievements API เกมของคุณจะต้องได้รับออบเจ็กต์ AchievementsClient ก่อน ซึ่งทำได้โดยการเรียกใช้เมธอด Games.getAchievementClient() และส่งกิจกรรมและ GoogleSignInAccount ของเพลเยอร์ปัจจุบัน ดูวิธีเรียกข้อมูลบัญชีผู้เล่นได้ที่การลงชื่อเข้าใช้ใน Android Games

ปลดล็อกรางวัลพิเศษ

หากต้องการปลดล็อกรางวัลพิเศษ ให้เรียกใช้เมธอด AchievementsClient.unlock() และส่งรหัสรางวัลพิเศษ

ข้อมูลโค้ดต่อไปนี้แสดงวิธีที่แอปปลดล็อกรางวัล

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 จะปลดล็อกรางวัลพิเศษโดยอัตโนมัติเมื่อผู้เล่นทำตามขั้นตอนครบตามจำนวนที่กำหนด

แนวทางปฏิบัติแนะนำคือให้กำหนดรหัสรางวัลพิเศษในไฟล์ strings.xml เพื่อให้เกมอ้างอิงรางวัลพิเศษตามรหัสทรัพยากรได้ เมื่อเรียกใช้การอัปเดตและโหลดรางวัล ให้ทำตามแนวทางปฏิบัติแนะนำเหล่านี้ด้วยเพื่อหลีกเลี่ยงการใช้งานเกินโควต้า API

แสดงรางวัลพิเศษ

หากต้องการแสดงรางวัลของผู้เล่น ให้เรียก AchievementsClient.getAchievementsIntent() เพื่อรับ Intent เพื่อสร้างอินเทอร์เฟซผู้ใช้สำหรับรางวัลเริ่มต้น จากนั้นเกมจะแสดง UI ได้โดยเรียกใช้ startActivityForResult

ข้อมูลโค้ดต่อไปนี้แสดงวิธีที่แอปแสดงอินเทอร์เฟซผู้ใช้สำหรับรางวัลเริ่มต้น ในข้อมูลโค้ด 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 ของรางวัลเริ่มต้นแสดงอยู่ด้านล่าง