เพิ่มกิจกรรมในเกม

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

คู่มือนี้จะแสดงวิธีใช้บริการเหตุการณ์ในแอปพลิเคชัน C++

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

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

หากต้องการตั้งค่าสภาพแวดล้อมการพัฒนา C++ เพื่อใช้บริการเหตุการณ์ ให้ทําตามวิธีการในคู่มือการเริ่มต้นใช้งานสําหรับ C++ คุณสามารถดาวน์โหลด SDK สำหรับ C++ ของบริการเกมของ Play ได้จากหน้าการดาวน์โหลด SDK

คุณต้องกำหนดเหตุการณ์ใน Google Play Console ก่อนเพื่อให้เกมเข้าถึงเหตุการณ์ได้

ส่งกิจกรรม

คุณสามารถเพิ่มโค้ดในเกมเพื่อแจ้งให้บริการเหตุการณ์ทราบทุกครั้งที่มีเหตุการณ์ที่น่าสนใจเกิดขึ้นกับเกม ตัวอย่างเหตุการณ์ที่คุณบันทึกได้ในเกม ได้แก่ การฆ่าศัตรู การสํารวจหรือกลับไปยังภูมิภาคต่างๆ ในเกม หรือการได้รับไอเทมในเกม โดยทั่วไปแล้ว คุณจะต้องเรียกใช้เมธอด Increment ในเครื่องมือจัดการเหตุการณ์เพื่อเพิ่มจํานวนเหตุการณ์ขึ้น 1 ครั้งทุกครั้งที่ผู้เล่นดําเนินการซึ่งเชื่อมโยงกับเหตุการณ์ (เช่น "ฆ่ามอนสเตอร์ 1 ตัว")

ตัวอย่างต่อไปนี้แสดงวิธีส่งจํานวนเหตุการณ์ที่อัปเดตแล้วไปยังบริการเหตุการณ์

  // Increment the event count when player performs the 'Attack blue
  // monster' action.
  game_services_->Events().Increment(BLUE_MONSTER_EVENT_ID);

เรียกข้อมูลเหตุการณ์

หากต้องการเรียกข้อมูลค่าการนับปัจจุบันที่จัดเก็บไว้ในเซิร์ฟเวอร์ของ Google สําหรับเหตุการณ์หนึ่งๆ ให้เรียกใช้เมธอด Fetch* อย่างใดอย่างหนึ่ง คุณอาจทำเช่นนี้ได้ เช่น หากต้องการแสดงสถิติหรือความคืบหน้าในเกมของผู้เล่นจาก UI ที่กําหนดเองในเกม

ตัวอย่างต่อไปนี้แสดงวิธีดึงข้อมูลและบันทึกข้อมูลเหตุการณ์ในเกม

  // Log Events details.
  LogI("---- Showing Event Counts -----");
  gpg::EventManager::FetchAllCallback callback =
      [](gpg::EventManager::FetchAllResponse const &response) {
    for (auto i : response.data) {
      gpg::Event const &event = i.second;
      LogI("Event name: %s  count: %d", event.Name().c_str(),
           event.Count());
    }
  };
  game_services_->Events().FetchAll(callback);