เริ่มต้นใช้งานปลั๊กอิน Google Play Games สำหรับ Unity

หัวข้อนี้จะอธิบายวิธีตั้งค่าโปรเจ็กต์ Unity เพื่อใช้ ปลั๊กอิน Google Play Games สำหรับ Unity งาน รวมถึงการตั้งค่าโปรเจ็กต์ การเลือกแพลตฟอร์มโซเชียล และการตั้งค่า ลงชื่อเข้าใช้โปรแกรมเล่น

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

การติดตั้งปลั๊กอิน

  1. ดาวน์โหลดปลั๊กอินโดยใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้

  2. ค้นหาไฟล์ unitypackage ในไดเรกทอรี current-build ไฟล์นี้ คือปลั๊กอิน ตัวอย่างเช่น ควรมีลักษณะคล้ายกับตัวอย่างต่อไปนี้

      current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
    
  3. เปิดโปรเจ็กต์เกมใน Unity

  4. นำเข้าไฟล์ unitypackage ลงในเนื้อหาของโปรเจ็กต์โดยคลิก ชิ้นงาน > นำเข้าแพ็กเกจ > รายการในเมนูแพ็กเกจที่กำหนดเอง

  5. ตรวจสอบว่าแพลตฟอร์มบิลด์ปัจจุบันตั้งค่าเป็น Android

    1. ในเมนูหลัก ให้คลิกไฟล์ > การตั้งค่าบิลด์...

    2. เลือก Android แล้วคลิกเปลี่ยนแพลตฟอร์ม

    3. ควรมีรายการเมนูใหม่ในส่วนหน้าต่าง > Google Play Games ถ้า หากไม่มี ให้รีเฟรชชิ้นงานโดยคลิกชิ้นงาน > รีเฟรชและ จากนั้นลองตั้งค่าแพลตฟอร์มบิลด์อีกครั้ง

รับแหล่งข้อมูล Android จาก Play Console

รางวัลพิเศษ ลีดเดอร์บอร์ด และกิจกรรมที่คุณสร้างแต่ละรายการ Play Console มีทรัพยากร Android ที่คุณใช้เมื่อ ตั้งค่าโปรเจ็กต์ Unity

  1. รับแหล่งข้อมูล Android สำหรับเกมของคุณ

    1. ใน Play Console ให้เปิดโปรเจ็กต์บริการเกมของ Play สำหรับ เกมของคุณ

    2. คลิกแท็บรางวัลพิเศษ แล้วคลิกรับแหล่งข้อมูล

    3. คลิกแท็บ Android ในหน้าต่างส่งออกทรัพยากร

    4. เลือกและคัดลอกเนื้อหา XML

ตั้งค่าโปรเจ็กต์ Unity

  1. เพิ่มทรัพยากร Android ลงในโปรเจ็กต์ Unity

    1. ใน Unity ให้คลิก ** หน้าต่าง > Google Play Games > ตั้งค่า... การตั้งค่า Android **

    2. ดำเนินการตามรายการเหล่านี้ในหน้าต่างการตั้งค่าให้เสร็จสิ้น

    3. ไดเรกทอรีสำหรับบันทึกค่าคงที่: โฟลเดอร์สำหรับไฟล์คงที่

    4. ชื่อคลาสค่าคงที่: ชื่อของคลาส C# ที่จะสร้าง รวมถึงเนมสเปซ

    5. คำจำกัดความทรัพยากร: วางข้อมูลทรัพยากร Android จาก Play Console ที่นี่

    6. รหัสไคลเอ็นต์ของเว็บ: รหัสไคลเอ็นต์ของเว็บแอปที่ลิงก์ นี่เป็นเพียง จําเป็นต้องมีแบ็กเอนด์บนเว็บ สำหรับเกมของคุณ และต้องการรหัสการตรวจสอบสิทธิ์เซิร์ฟเวอร์เพื่อแลกเปลี่ยนกับโทเค็นเพื่อการเข้าถึงโดย เซิร์ฟเวอร์แบ็กเอนด์ หรือหากคุณต้องการโทเค็นรหัสเพื่อให้โปรแกรมเล่นสร้าง การเรียก API ที่ไม่ใช่เกม

    7. คลิกตั้งค่า การดำเนินการนี้จะกำหนดค่าเกมของคุณด้วยรหัสไคลเอ็นต์และ จะสร้างคลาส C# ที่มีค่าคงที่สำหรับ Android แต่ละเครื่อง ที่ไม่ซับซ้อน

การตั้งค่า Android

ตั้งค่าเส้นทางไปยังการติดตั้ง Android SDK ใน Unity สถานที่นี้ตั้งอยู่ใน เมนูค่ากำหนด ในส่วนเครื่องมือภายนอก

หากต้องการกำหนดค่าเกม Unity ให้ทำงานกับ Google Play Games บน Android ก่อนอื่น เปิดตัวจัดการ Android SDK และยืนยันว่าคุณได้ดาวน์โหลดรายการต่อไปนี้แล้ว แพ็กเกจของคุณ ขึ้นอยู่กับว่าคุณกำลังใช้ตัวจัดการ SDK จาก Android Studio อยู่หรือไม่ หรือใช้เครื่องมือจัดการ SDK แบบสแตนด์อโลน ชื่อของคอมโพเนนต์อาจแตกต่างกัน - บริการ Google Play - ไลบรารีการสนับสนุนของ Android - ที่เก็บของ Maven ในเครื่องสำหรับไลบรารีการสนับสนุน (หรือที่เรียกว่าการสนับสนุนของ Android ที่เก็บ) - ที่เก็บของ Google - Android 6.0 (API 23) (ไม่มีผลกับเวอร์ชัน SDK ขั้นต่ำ)

ต่อไป ให้กำหนดค่าชื่อแพ็กเกจของเกม ในการดำเนินการนี้ ให้คลิก ไฟล์ > รังสรรค์ การตั้งค่า เลือกแพลตฟอร์ม Android แล้วคลิกการตั้งค่าผู้เล่นเพื่อ แสดงหน้าต่างการตั้งค่าโปรแกรมเล่นของ Unity ในหน้าต่างนั้น ให้มองหาไอคอน Bundle การตั้งค่าตัวระบุในการตั้งค่าอื่นๆ ป้อนชื่อแพ็กเกจของคุณ (เช่น com.example.my.awesome.game)

ในการลงชื่อเข้าใช้บริการเกมของ Play คุณจะต้องลงนามไฟล์ APK ให้ตรวจสอบว่าคุณได้ลงชื่อเข้าใช้ด้วย ใบรับรองที่ถูกต้อง นั่นคือเป็นใบรับรองที่สอดคล้องกับใบรับรอง SHA1 ลายนิ้วมือที่คุณป้อนใน Developer Console ระหว่างการตั้งค่า

จากนั้นคลิกรายการในเมนู Window |Google Play Games|การตั้งค่า - Android ซึ่งจะแสดงหน้าจอการตั้งค่า Android

ป้อนชื่อคลาสค่าคงที่ นี่คือชื่อของคลาสที่มีคุณสมบัติครบถ้วน ที่จะอัปเดต (หรือสร้าง) ซึ่งมีรหัสของทรัพยากรเกม รูปแบบของชื่อคือ <namespace>.<classname> ตัวอย่างเช่น AwesomeGame.GPGSIds

วางข้อมูลการกำหนดทรัพยากร นี่คือข้อมูล XML จาก Google Play Developer Console ซึ่งมีรหัสทรัพยากรและรหัสแอปพลิเคชัน สำหรับ Android

ข้อมูลนี้พบได้ในแผงควบคุมสำหรับนักพัฒนาซอฟต์แวร์ Google Play โดยคลิก "รับ ทรัพยากร" ในหน้าแหล่งข้อมูลใดๆ (เช่น รางวัลพิเศษหรือลีดเดอร์บอร์ด) แล้วคลิก Android

หลังจากวางข้อมูลในพื้นที่ข้อความแล้ว ให้คลิกปุ่มตั้งค่า

หมายเหตุ: หากคุณใช้เว็บแอปพลิเคชันหรือเซิร์ฟเวอร์แบ็กเอนด์กับเกม คุณสามารถลิงก์เว็บแอปพลิเคชันกับเกม เพื่อให้สามารถ โทเค็นรหัส และ/หรืออีเมล ซึ่งทำได้โดยลิงก์เว็บแอปพลิเคชันกับ ใน Google Play Developer Console และป้อนรหัสไคลเอ็นต์สำหรับ เว็บแอปพลิเคชันลงในกล่องโต้ตอบการตั้งค่า

คำแนะนำเพิ่มเติมในการสร้างแอปสำหรับ Android บน Windows

หากคุณใช้ Windows คุณต้องตรวจสอบว่าการติดตั้ง Java SDK เข้าถึงได้โดย Unity หากต้องการทำสิ่งต่อไปนี้

  1. ตั้งค่าตัวแปรสภาพแวดล้อม JAVA_HOME เป็นเส้นทางการติดตั้ง Java SDK (เช่น C:\Program Files\Java\jdk1.7.0_45)
  2. เพิ่มโฟลเดอร์ bin ของ Java SDK ลงในตัวแปรสภาพแวดล้อม PATH (เช่น C:\Program Files\Java\jdk1.7.0_45\bin)
  3. เริ่มต้นใหม่

วิธีแก้ไขตัวแปรสภาพแวดล้อม: ใน Windows 2000/XP/Vista/7 ให้คลิกขวา คอมพิวเตอร์ของฉัน จากนั้นไปที่คุณสมบัติ จากนั้นไปที่คุณสมบัติของระบบขั้นสูง (หรือคุณสมบัติของระบบ แล้วคลิกแท็บขั้นสูง) จากนั้นคลิก ตัวแปรสภาพแวดล้อม ใน Windows 8 ให้กด Windows Key + W แล้วค้นหา สําหรับตัวแปรสภาพแวดล้อม โปรดดูข้อมูลเพิ่มเติมในเอกสาร สำหรับ Windows เวอร์ชันที่คุณใช้

เรียกใช้โปรเจ็กต์

ถ้าคุณใช้ตัวอย่าง Smoketest อยู่ คุณควรสามารถสร้าง และเรียกใช้โปรเจ็กต์ ณ จุดนี้ คุณจะเห็นการพยายามลงชื่อเข้าใช้โดยอัตโนมัติ เมื่อ Smoketest เริ่มขึ้น

หากต้องการสร้างและเรียกใช้บน Android ให้คลิก ไฟล์ > การตั้งค่าบิลด์ ให้เลือกแพลตฟอร์ม Android จากนั้น เปลี่ยนไปใช้ Platform จากนั้นสร้างและเรียกใช้

เลือกแพลตฟอร์มโซเชียล

ปลั๊กอิน Google Play เกมจะใช้ อินเทอร์เฟซโซเชียล สำหรับความเข้ากันได้กับเกมที่ใช้อินเทอร์เฟซนั้นอยู่แล้ว เมื่อผสานรวมกับเกมอื่น ใหม่ อย่างไรก็ตาม ฟีเจอร์บางอย่างจะมีเฉพาะใน Play Games และ เป็นส่วนขยายของอินเทอร์เฟซโซเชียลมาตรฐานที่ Unity ให้บริการ

คุณสามารถเข้าถึงการเรียก API มาตรฐานผ่านออบเจ็กต์ Social.Active ซึ่งเป็นการอ้างถึงอินเทอร์เฟซ ISocialPlatform แบบไม่เป็นมาตรฐาน คุณสามารถเข้าถึงส่วนขยาย Google Play Games ได้โดยการแคสต์ Social.Active ลงในคลาส PlayGamesPlatform ซึ่งวิธีการเพิ่มเติมมีดังนี้ พร้อมใช้งาน

ใช้ปลั๊กอินโดยไม่ลบล้างแพลตฟอร์มโซเชียลเริ่มต้น

เมื่อคุณโทรหา PlayGamesPlatform.Activate Google Play Games จะกลายเป็น การใช้แพลตฟอร์มโซเชียลที่เป็นค่าเริ่มต้น ซึ่งหมายถึงการเรียกเมธอด ในSocialและSocial.Activeจะดำเนินการโดย Google Play Games ปลั๊กอิน ซึ่งเป็นลักษณะการทำงานที่ต้องการสำหรับเกมส่วนใหญ่ที่ใช้ปลั๊กอิน

อย่างไรก็ตาม ถ้าคุณต้องการเก็บการติดตั้งเริ่มต้นไว้ไม่ว่าด้วยเหตุผลใดก็ตาม เข้าถึงได้ (เช่น เพื่อใช้ส่งรางวัลพิเศษและลีดเดอร์บอร์ดไปยัง แพลตฟอร์มโซเชียลต่างๆ) คุณสามารถใช้ปลั๊กอิน Google Play เกมได้โดยไม่ต้อง การลบล้างค่าเริ่มต้น หากต้องการทำสิ่งต่อไปนี้

  1. อย่าโทรหา PlayGamesPlatform.Activate
  2. ถ้า Xyz เป็นชื่อวิธีการที่คุณต้องการเรียกในชั้นเรียน Social ให้ทำ ไม่เรียก Social.Xyz ให้โทรหา PlayGamesPlatform.Instance.Xyz แทน
  3. อย่าใช้ Social.Active เมื่อโต้ตอบกับ Google Play Games แต่ ใช้ PlayGamesPlatform.Instance

ด้วยวิธีนี้ คุณสามารถส่งคะแนนและความสำเร็จพร้อมกันไปยัง แพลตฟอร์มทางสังคมอื่นๆ:

    // Submit achievement to original default social platform
    Social.ReportProgress("MyAchievementIdHere", 100.0f, callback);

    // Submit achievement to Google Play
    PlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);

ยืนยันบริการลงชื่อเข้าใช้

ระบบจะพยายามเชื่อมต่อกับบริการเกมของ Play โดยอัตโนมัติโดยใช้ บริการลงชื่อเข้าใช้เมื่อเปิดเกมแล้ว หาก การเชื่อมต่อสำเร็จ เกมของคุณจะแสดงข้อความแจ้งให้ลงชื่อเข้าใช้ และพร้อมที่จะใช้ ปลั๊กอิน Google Play Games สำหรับ Unity

หากผู้ใช้ไม่เคยใช้ Google Play Games ในอุปกรณ์ของตนเองเลย แสดงหน้าจอการตั้งค่าแบบครั้งเดียวโดยอัตโนมัติเพื่อสร้าง Play Games ของคุณได้

ในเมธอด Start ของสคริปต์ ให้ฟังผลลัพธ์ของสคริปต์อัตโนมัติ การพยายามลงชื่อเข้าใช้ ดึงข้อมูลสถานะการตรวจสอบสิทธิ์ และปิดใช้ Play Games ฟีเจอร์ของบริการในกรณีที่ผู้ใช้ไม่ได้ลงชื่อเข้าใช้

    using GooglePlayGames;

    public void Start() {
      PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
    }

    internal void ProcessAuthentication(SignInStatus status) {
      if (status == SignInStatus.Success) {
        // Continue with Play Games Services
      } else {
        // Disable your integration with Play Games Services or show a login button
        // to ask users to sign-in. Clicking it should call
        // PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
      }
    }
}

รหัสผลลัพธ์คือ Enum ที่ใช้ระบุเหตุผลในการลงชื่อเข้าใช้ได้ ล้มเหลว

หากต้องการใช้แพลตฟอร์มโซเชียลของ Unity มากกว่า คุณก็ใช้ รหัสต่อไปนี้:

  using GooglePlayGames;

  public void Start() {
    PlayGamesPlatform.Activate();
    Social.localUser.Authenticate(ProcessAuthentication);
  }

คุณจะไม่สามารถเรียก API ของ Google Play Games จนกว่าจะเรียก API เกม ผลลัพธ์จาก Authenticate เราจึงแนะนำให้เกมแสดง หน้าจอสแตนด์บายจนกว่าจะมีการเรียกใช้ Callback เพื่อให้แน่ใจว่าผู้ใช้เริ่มเล่นไม่ได้ เกมจนกว่าการตรวจสอบสิทธิ์จะเสร็จสมบูรณ์

เรียกรหัสการตรวจสอบสิทธิ์เซิร์ฟเวอร์

เพื่อเข้าถึง Google APIs ในเว็บเซิร์ฟเวอร์ระบบแบ็คเอนด์ในนามของ คุณต้องรับรหัสการตรวจสอบสิทธิ์จากแอปพลิเคชันไคลเอ็นต์และ ส่งผ่านข้อมูลนี้ไปยังแอปพลิเคชันเว็บเซิร์ฟเวอร์ โค้ดนี้สามารถแลกเปลี่ยนเป็น โทเค็นเพื่อการเข้าถึงเพื่อเรียกใช้ API ต่างๆ สำหรับข้อมูลเกี่ยวกับ เวิร์กโฟลว์ โปรดดู Google Sign-In สำหรับเว็บไซต์

วิธีรับรหัสการเข้าถึงฝั่งเซิร์ฟเวอร์

  1. กำหนดค่ารหัสเว็บไคลเอ็นต์ของเว็บแอปพลิเคชันที่ลิงก์กับเกมของคุณใน Play Games Console

  2. โทรหา PlayGamesPlatform.Instance.RequestServerSideAccess เมื่อโปรแกรมเล่นวิดีโอ ตรวจสอบสิทธิ์เพื่อรับรหัสการเข้าถึงฝั่งเซิร์ฟเวอร์

  3. ส่งรหัสนี้ไปยังแอปพลิเคชันเซิร์ฟเวอร์ของคุณ

  PlayGamesPlatform.Instance.RequestServerSideAccess(
    /* forceRefreshToken= */ false,
    code -> {
      // send code to server
    });

ตั้งค่าและเพิ่มฟีเจอร์