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

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

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

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

หากยังไม่ได้ดำเนินการ คุณอาจดูแนวคิดเกี่ยวกับเกมความสำเร็จเพื่อเป็นข้อมูลเพิ่มเติม

ก่อนเริ่มเขียนโค้ดโดยใช้ API ความสำเร็จ ให้ทำดังนี้

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

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

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

หากต้องการปลดล็อกรางวัลพิเศษ ให้เรียกใช้เมธอด 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 ความสำเร็จเริ่มต้นแสดงอยู่ด้านล่าง