ลิขสิทธิ์ (c) 2014 Google Inc. สงวนลิขสิทธิ์
ปลั๊กอิน Google Play Games สำหรับ Unity® เป็นโปรเจ็กต์โอเพ่นซอร์สซึ่งมีเป้าหมายเพื่อมอบปลั๊กอินที่ช่วยให้นักพัฒนาเกมสามารถผสานรวมกับ Google Play Games API จากเกมที่เขียนใน Unity® อย่างไรก็ตาม โครงการนี้ไม่ได้รับการรับรองหรือควบคุมดูแลโดย Unity Technologies แต่อย่างใด
Unity® เป็นเครื่องหมายการค้าของ Unity Technologies
iOS เป็นเครื่องหมายการค้าของ Apple, Inc.
โปรดดาวน์โหลดแพ็คเกจจากหน้าเผยแพร่ Github
ปลั๊กอิน Google Play Games สำหรับ Unity ช่วยให้คุณเข้าถึง Google Play Games API ผ่านทางอินเทอร์เฟซโซเชียลของ Unity ปลั๊กอินให้การสนับสนุนฟีเจอร์ต่อไปนี้ของ Google Play Games API:
ลงชื่อเข้าใช้
เพื่อน
ปลดล็อค/เปิดเผย/เพิ่มความสำเร็จ
โพสต์คะแนนไปยังลีดเดอร์บอร์ด
คลาวด์บันทึกการอ่าน/เขียน
แสดง UI ความสำเร็จ/ลีดเดอร์บอร์ดในตัว
เหตุการณ์ต่างๆ
การเชื่อมต่อในบริเวณใกล้เคียง
ข้อสังเกต : ปลั๊กอินเวอร์ชันนี้ไม่รองรับ iOS อีกต่อไป บริการเกมของ Google Play สำหรับ iOS เลิกใช้งานแล้ว และไม่น่าจะทำงานตามที่คาดไว้ อย่าใช้บริการเกมของ Google Play สำหรับ iOS ในแอปใหม่ ดูโพสต์บล็อกประกาศการเลิกใช้งานสำหรับรายละเอียดเพิ่มเติม
คุณสมบัติ:
การตั้งค่าโครงการที่เน้น GUI ง่าย ๆ (รวมเข้ากับ Unity GUI)
ไม่จำเป็นต้องแทนที่/ปรับแต่งกิจกรรมของผู้เล่น
ไม่จำเป็นต้องแทนที่/ปรับแต่ง AndroidManifest.xml
สำหรับคำแนะนำในการใช้ปลั๊กอิน โปรดดูคู่มือนักพัฒนานี้
สำหรับแอปพลิเคชันตัวอย่างที่สาธิตวิธีใช้ Google Play Games โปรดดูโครงการ SmokeTest
หากคุณได้รวมโปรเจ็กต์ของคุณเข้ากับปลั๊กอินเวอร์ชันก่อนหน้าแล้ว และต้องการอัปเกรดเป็นเวอร์ชันใหม่ โปรดดูคำแนะนำในการอัปเกรด
ในการเข้าถึง Google API บนเว็บเซิร์ฟเวอร์แบ็กเอนด์ในนามของผู้เล่นปัจจุบัน คุณต้องได้รับรหัสการตรวจสอบสิทธิ์จากแอปพลิเคชันไคลเอนต์และส่งรหัสนี้ไปยังแอปพลิเคชันเว็บเซิร์ฟเวอร์ของคุณ รหัสนี้สามารถแลกเปลี่ยนเป็นโทเค็นการเข้าถึงเพื่อทำการเรียกไปยัง API ต่างๆ สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับขั้นตอนนี้ โปรดดูที่ Google Sign-In สำหรับเว็บไซต์
วิธีรับรหัสรับรองความถูกต้องของเซิร์ฟเวอร์:
กำหนดค่ารหัสเว็บไคลเอ็นต์ของแอปพลิเคชันเว็บที่เชื่อมโยงกับเกมของคุณใน Play Game Console
เรียก PlayGamesClientConfiguration.Builder.RequestServerAuthCode(false)
เมื่อสร้างการกำหนดค่า
เรียก PlayGamesPlatform.Instance.GetServerAuthCode()
เมื่อผู้เล่นได้รับการตรวจสอบสิทธิ์แล้ว
ส่งรหัสนี้ไปยังแอปพลิเคชันเซิร์ฟเวอร์ของคุณ
PlayGamesPlatform.Instance.RequestServerSideAccess(/* forceRefreshToken= */ false,code -> { // ส่งโค้ดไปยังเซิร์ฟเวอร์});
คุณสามารถลดขนาดของ Play Games Services Unity Plugin ได้โดยการลบโค้ดสำหรับฟีเจอร์ Play Games Services ที่เกมของคุณไม่ได้ใช้โดยใช้ Proguard Proguard จะลบโค้ดปลั๊กอิน Play Games Unity สำหรับฟีเจอร์ที่ไม่ได้ใช้ในเกมของคุณ ดังนั้นเกมของคุณจึงจัดส่งเฉพาะโค้ดที่จำเป็นเท่านั้น และลดขนาดผลกระทบจากการใช้บริการ Play Games
นอกจากนี้ คุณยังสามารถลดขนาดของโปรเจ็กต์ Unity ทั้งหมดได้โดยใช้ Managed Code Stripping ของ Unity ซึ่งจะบีบอัดโปรเจ็กต์ทั้งหมดของคุณ สามารถใช้ร่วมกับ Proguard ได้
ไปที่ File > Build Settings > Player Settings
และคลิกส่วน Publishing Settings
เลือก Proguard
เพื่อ Minify > Release
จากนั้นเปิดใช้งาน User Proguard File
หากคุณต้องการให้ปลั๊กอินได้รับการปกป้องสำหรับ debug apks ด้วย คุณสามารถเลือก Proguard
for Minify > Debug
ได้
คัดลอกเนื้อหาของการกำหนดค่า proguard ลงใน Assets/Plugins/Android/proguard-user.txt
เมื่อคุณเรียก PlayGamesPlatform.Activate
Google Play Games จะกลายเป็นการใช้งานแพลตฟอร์มโซเชียลเริ่มต้นของคุณ ซึ่งหมายความว่าการเรียกเมธอดใน Social
และ Social.Active
แบบคงที่จะดำเนินการโดยปลั๊กอิน Google Play Games นี่เป็นลักษณะการทำงานที่ต้องการสำหรับเกมส่วนใหญ่ที่ใช้ปลั๊กอิน
อย่างไรก็ตาม หากคุณต้องการให้การใช้งานเริ่มต้นสามารถเข้าถึงได้ (เช่น เพื่อใช้ในการส่งรางวัลพิเศษและลีดเดอร์บอร์ดไปยังแพลตฟอร์มโซเชียลอื่น) คุณสามารถใช้ปลั๊กอิน Google Play Games ได้โดยไม่ต้องแทนที่ปลั๊กอินเริ่มต้น เมื่อต้องการทำสิ่งนี้:
อย่าเรียก PlayGamesPlatform.Activate
หาก Xyz
เป็นชื่อของวิธีการที่คุณต้องการเรียกใช้ในคลาส Social
อย่าเรียก Social.Xyz
ให้เรียก PlayGamesPlatform.Instance.Xyz
แทน
อย่าใช้ Social.Active
เมื่อโต้ตอบกับ Google Play Games ให้ใช้ PlayGamesPlatform.Instance
แทน
ด้วยวิธีนี้ คุณสามารถส่งคะแนนและความสำเร็จพร้อมกันไปยังแพลตฟอร์มโซเชียลสองแพลตฟอร์มขึ้นไป:
// ส่งความสำเร็จไปยังแพลตฟอร์มโซเชียลเริ่มต้นดั้งเดิมSocial.ReportProgress("MyAchievementIdHere", 100.0f, callback);// ส่งความสำเร็จไปที่ Google PlayPlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);
ส่วนนี้แสดงรายการบุคคลที่มีส่วนร่วมในโครงการนี้โดยการเขียนโค้ด ปรับปรุงเอกสารประกอบ หรือแก้ไขข้อบกพร่อง
Dgizusse เพื่อหาว่าการตั้งค่า JAVA_HOME เป็นสิ่งจำเป็นบน Windows
antonlicht สำหรับแก้ไขข้อบกพร่องด้วยประเภทพารามิเตอร์ของ showErrorDialog บนไลบรารีการสนับสนุน
pR0Ps สำหรับแก้ไขปัญหาที่ OnAchievementsLoaded ไม่ยอมรับรหัสผลลัพธ์ OPERATION_DEFERRED ว่าสำเร็จ
friikyuu สำหรับการช่วยแก้ปัญหาที่ทำให้การเรียก API ต้องเข้าคิวแทนที่จะดำเนินการแม้ว่าจะเชื่อมต่อแล้วก็ตาม