เอกสารนี้จะแนะนำขั้นตอนการตั้งค่าโปรเจ็กต์ Unity เพื่อใช้ปลั๊กอิน Google Play Games สำหรับ Unity คุณจะได้เรียนรู้วิธีติดตั้งปลั๊กอินและ กำหนดค่าโปรเจ็กต์ Unity เอกสารนี้ยังครอบคลุมถึงวิธียืนยันบริการลงชื่อเข้าใช้ด้วย
ก่อนเริ่มต้น
ตรวจสอบข้อกำหนดของซอฟต์แวร์ ตั้งค่า Play Console และติดตั้ง Unity Hub
ตั้งค่า Play Console สำหรับเกม
ติดตั้ง Unity Hub และสร้างเกมใน Unity
การติดตั้งปลั๊กอิน
หากต้องการดาวน์โหลดและติดตั้งปลั๊กอิน Google Play Games สำหรับ Unity ให้ทำตาม ขั้นตอนต่อไปนี้ใน Unity Hub
ดาวน์โหลดที่เก็บ GitHub
ในไดเรกทอรี
current-build
ให้ค้นหาไฟล์unitypackage
ไฟล์นี้ แสดงถึงปลั๊กอิน เช่น ควรมีลักษณะดังนี้current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
ตั้งค่าโปรเจ็กต์ Unity
หากต้องการตั้งค่าโปรเจ็กต์ Unity ในการตั้งค่าเพลเยอร์ ให้ทำตามขั้นตอนต่อไปนี้
เปิดโปรเจ็กต์เกม
ใน Unity Hub ให้คลิกชิ้นงาน > นำเข้าแพ็กเกจ > แพ็กเกจที่กำหนดเอง เพื่อนำเข้าไฟล์
unitypackage
ไปยังชิ้นงานของโปรเจ็กต์ตรวจสอบว่าแพลตฟอร์มบิลด์ปัจจุบันตั้งค่าเป็น Android
คลิกไฟล์ > การตั้งค่าการสร้างในเมนูหลัก
เลือก Android แล้วคลิกเปลี่ยนแพลตฟอร์ม
คุณควรเห็นรายการเมนูใหม่ในส่วนหน้าต่าง > Google Play Games หากไม่มี ให้รีเฟรชชิ้นงานโดยคลิกชิ้นงาน > รีเฟรช แล้วลองตั้งค่าแพลตฟอร์มบิลด์อีกครั้ง
ใน Unity Hub ให้คลิกFile > Build Settings > Player Settings > Other Settings
เลือกเวอร์ชันในช่องระดับ API เป้าหมาย
ในช่องแบ็กเอนด์การเขียนสคริปต์ ให้ป้อน
IL2CPP
เลือกค่าในช่องสถาปัตยกรรมเป้าหมาย
จดชื่อแพ็กเกจ package_name คุณสามารถใช้ข้อมูลนี้ ในภายหลังได้

สร้างคีย์สโตร์ใหม่
คุณต้องมีคีย์เพื่อตรวจสอบความถูกต้องของข้อมูลเข้าสู่ระบบ โปรดทำตามขั้นตอนต่อไปนี้
- ใน Unity Hub ให้คลิกไฟล์ > การตั้งค่าการสร้าง > การตั้งค่าเพลเยอร์
- ในส่วนการตั้งค่าการเผยแพร่ ให้คลิกตัวจัดการคีย์สโตร์
- ในหน้าต่างตัวจัดการคีย์สโตร์ ให้คลิกคีย์สโตร์ > สร้างใหม่ > ทุกที่
- เลือกโฟลเดอร์และตั้งชื่อที่เก็บคีย์
- ในช่องรหัสผ่าน ให้ป้อนรหัสผ่านและยืนยัน
- คลิกเพิ่มคีย์
จดชื่อโฟลเดอร์ไว้ คุณใช้ชื่อนี้เพื่อ สร้างข้อมูลเข้าสู่ระบบใน Google Cloud ได้
คัดลอกทรัพยากร Android จาก Play Console
ความสำเร็จ ลีดเดอร์บอร์ด และกิจกรรมแต่ละรายการที่คุณสร้างใน Play Console จะมีทรัพยากร Android ที่คุณใช้เมื่อตั้งค่าโปรเจ็กต์ Unity
หากต้องการรับทรัพยากร Android สำหรับเกม ให้ทำตามขั้นตอนต่อไปนี้
ใน Google Play Console ให้เปิดเกม
ในหน้าบริการเกมของ Play - การกำหนดค่า (ขยายการมองเห็น > บริการเกมของ Play > การตั้งค่าและการจัดการ > การกำหนดค่า) ให้คลิกรับทรัพยากร
ในหน้าต่างทรัพยากร ให้คลิกแท็บ Android(XML)
เลือกและคัดลอกเนื้อหาของทรัพยากร Android (
AndroidManifest.xml
)
เพิ่มทรัพยากร Android ลงในโปรเจ็กต์ Unity
เพิ่มทรัพยากร Android ต่อไปนี้ลงในโปรเจ็กต์ Unity
ใน Unity Hub ให้คลิก Window > Google Play Games > Setup > Android Setup
- ในช่องไดเรกทอรีที่จะบันทึกค่าคงที่ ให้ป้อนชื่อโฟลเดอร์สำหรับ ไฟล์ค่าคงที่
ในช่องชื่อคลาสค่าคงที่ ให้ป้อนชื่อคลาส C# ที่จะสร้าง รวมถึงเนมสเปซ
เช่น หากคลาส C# คือ
id.cs
และอยู่ในส่วน Assets > myproject > scripts > id.cs ชื่อคลาสค่าคงที่อาจเป็นmyproject.scripts.id
ในช่องคำจำกัดความของทรัพยากร ให้วางข้อมูลทรัพยากร Android (ไฟล์
AndroidManifest.xml
) ที่คัดลอกจาก Google Play Consoleไม่บังคับ: ในช่องรหัสไคลเอ็นต์ ให้ป้อนรหัสไคลเอ็นต์ของ เว็บแอปที่ลิงก์
หากต้องการรับรหัสไคลเอ็นต์สำหรับเกมจาก Google Cloud โปรดดูหัวข้อ การสร้างรหัสไคลเอ็นต์
คุณจะต้องใช้รหัสนี้ก็ต่อเมื่อมีแบ็กเอนด์บนเว็บ สำหรับเกมและต้องใช้รหัสการให้สิทธิ์เซิร์ฟเวอร์เพื่อแลกเป็นโทเค็นเพื่อการเข้าถึง โดยเซิร์ฟเวอร์แบ็กเอนด์ หรือหากคุณต้องใช้โทเค็นรหัสสำหรับผู้เล่นเพื่อทำการเรียก API อื่นๆ ที่ไม่ใช่เกม
คลิกตั้งค่า ซึ่งจะกำหนดค่าเกมด้วยรหัสไคลเอ็นต์และ สร้างคลาส C# ที่มีค่าคงที่สำหรับทรัพยากร Android แต่ละรายการ
ใน Unity Hub ให้คลิกหน้าต่าง > Google Play Games > การตั้งค่า > การตั้งค่า Nearby Connections
ในช่องรหัสบริการการเชื่อมต่อในบริเวณใกล้เคียง ให้ป้อน package_name
ใช้ package_name เดียวกันกับที่ใช้ใน ตั้งค่าโปรเจ็กต์ Unity
คลิกตั้งค่า
เลือกแพลตฟอร์มโซเชียล
ปลั๊กอินบริการเกมของ Google Play จะใช้อินเทอร์เฟซโซเชียลของ Unity เพื่อให้เข้ากันได้กับเกมที่ใช้อินเทอร์เฟซนั้นอยู่แล้วเมื่อผสานรวม กับแพลตฟอร์มอื่นๆ อย่างไรก็ตาม ฟีเจอร์บางอย่างมีเฉพาะใน Play Games และเป็นส่วนขยายของอินเทอร์เฟซโซเชียลมาตรฐานที่ Unity มีให้
การเรียก API มาตรฐานสามารถเข้าถึงได้ผ่านออบเจ็กต์ Social.Active ซึ่งเป็นการอ้างอิงถึงอินเทอร์เฟซ ISocialPlatform ส่วนขยายบริการเกมของ Google Play ที่ไม่ใช่มาตรฐาน จะเข้าถึงได้โดยการแคสต์ออบเจ็กต์ Social.Active ไปยังคลาส PlayGamesPlatform ซึ่งจะมีเมธอดเพิ่มเติม ให้ใช้งาน
ใช้ปลั๊กอินโดยไม่ต้องลบล้างแพลตฟอร์มโซเชียลเริ่มต้น
เมื่อคุณเรียกใช้ PlayGamesPlatform.Activate
บริการเกมของ Google Play จะกลายเป็นการใช้งานแพลตฟอร์มโซเชียลเริ่มต้น ซึ่งหมายความว่าการเรียกใช้แบบคงที่ไปยังเมธอดใน Social
และ Social.Active
จะดำเนินการโดยปลั๊กอินบริการเกมของ Google Play นี่คือลักษณะการทำงานของเกมส่วนใหญ่ที่ใช้ปลั๊กอิน
อย่างไรก็ตาม หากคุณต้องการเก็บการติดตั้งใช้งานเริ่มต้นไว้ด้วยเหตุผลบางประการ (เช่น เพื่อใช้ส่งความสำเร็จและลีดเดอร์บอร์ดไปยัง แพลตฟอร์มโซเชียลอื่น) คุณสามารถใช้ปลั๊กอินบริการเกมของ Google Play โดยไม่ต้อง ลบล้างปลั๊กอินเริ่มต้นได้ โดยทำดังนี้
- ไม่ต้องโทร
PlayGamesPlatform.Activate
- หาก
Xyz
เป็นชื่อเมธอดที่คุณต้องเรียกใช้ในคลาสSocial
อย่าเรียกใช้Social.Xyz
แต่ให้โทรหาPlayGamesPlatform.Instance.Xyz
แทน - อย่าใช้
Social.Active
เมื่อโต้ตอบกับบริการเกมของ Google Play แต่ให้ใช้PlayGamesPlatform.Instance
แทน
วิธีนี้จะช่วยให้คุณส่งคะแนนและความสำเร็จไปยังแพลตฟอร์มโซเชียล 2 แพลตฟอร์มขึ้นไปพร้อมกันได้
// 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 สำหรับ Unity
หากผู้ใช้ไม่เคยใช้บริการเกมของ Google Play ในอุปกรณ์ ระบบจะนำผู้ใช้ไปยังหน้าจอการตั้งค่าแบบครั้งเดียวโดยอัตโนมัติเพื่อสร้างบัญชี Play Games
ในเมธอด Start
ของสคริปต์ ให้รอผลลัพธ์ของการพยายามลงชื่อเข้าใช้อัตโนมัติ
ดึงข้อมูลสถานะการตรวจสอบสิทธิ์ และปิดใช้ฟีเจอร์ของบริการเกม Play
หากผู้ใช้ไม่ได้ลงชื่อเข้าใช้
หากเวอร์ชันปลั๊กอิน Unity เก่ากว่า v11
คุณจะใช้ฟีเจอร์การลงชื่อเข้าใช้ไม่ได้
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).
}
}
รหัสผลลัพธ์คือการแจงนับที่คุณใช้ระบุสาเหตุของการลงชื่อเข้าใช้ไม่สำเร็จได้
หากต้องการใช้แพลตฟอร์มโซเชียลของ Unity คุณสามารถใช้โค้ดต่อไปนี้แทนได้
using GooglePlayGames;
public void Start() {
PlayGamesPlatform.Activate();
Social.localUser.Authenticate(ProcessAuthentication);
}
คุณจะเรียกใช้ Google Play Games Services API ไม่ได้จนกว่าจะได้รับค่าที่สำเร็จจาก Authenticate
ด้วยเหตุนี้ เราจึงขอแนะนำให้เกมแสดง
หน้าจอสแตนด์บายจนกว่าจะมีการเรียกใช้แฮนเดิลการเรียกกลับ เพื่อให้มั่นใจว่าผู้ใช้จะเริ่มเล่น
เกมไม่ได้จนกว่าการตรวจสอบสิทธิ์จะเสร็จสมบูรณ์
ใช้ Play App Signing
Google จัดการและปกป้องคีย์ Signing ของแอปโดยใช้ Play App Signing คุณใช้ Play App Signing เพื่อลงนามในไฟล์ Android App Bundle ที่เพิ่มประสิทธิภาพสำหรับการเผยแพร่ได้ Play App Signing จะจัดเก็บคีย์ App Signing ของคุณไว้ในโครงสร้างพื้นฐานที่ปลอดภัยของ Google หากต้องการใช้ Play App Signing คุณต้องสร้างและดาวน์โหลดไฟล์ AAB จาก Unity Hub ก่อน จากนั้นคุณจะอัปโหลดไฟล์ AAB ไปยัง Play Console และสร้างรุ่นการทดสอบภายในได้
สร้างไฟล์ AAB
หากต้องการสร้างไฟล์ AAB ใน Unity Hub ให้ทำตามขั้นตอนต่อไปนี้
- ใน Unity Hub ให้คลิก File > Build settings
เลือกสร้าง App Bundle ( Google Play)
ดูข้อมูลเพิ่มเติมได้ที่ข้อมูลอ้างอิงการตั้งค่าการสร้าง Android
คลิกสร้าง
ดาวน์โหลดไฟล์ AAB จาก Unity Hub
สร้างรุ่นสำหรับการทดสอบภายใน
หากต้องการสร้างรุ่นสำหรับการทดสอบภายในและเพิ่มผู้ทดสอบใน Play Console ให้ทำตามขั้นตอนต่อไปนี้
- เลือกเกมใน Google Play Console
- ไปที่หน้าทดสอบและเผยแพร่ (การทดสอบ > การทดสอบภายใน)
- คลิกอัปโหลด แล้วเลือกไฟล์ AAB
- ป้อนชื่อในช่องรายละเอียดผลงาน
- คลิกถัดไป แล้วตรวจสอบรายละเอียดผลงาน
- คลิกบันทึกและเผยแพร่
ในแท็บผู้ทดสอบ ให้คลิกสร้างรายชื่ออีเมลเพื่อเพิ่มผู้ทดสอบได้สูงสุด 100 คน
ดูข้อมูลเพิ่มเติมได้ที่การทดสอบภายใน: จัดการผู้ทดสอบได้สูงสุด 100 คน
ใน URL หรืออีเมลสำหรับแสดงความคิดเห็น ให้ป้อน URL หรืออีเมลสำหรับแสดงความคิดเห็น
คลิกบันทึก
ยืนยันข้อมูลเข้าสู่ระบบ App Signing
- เลือกเกมใน Google Play Console
- ไปที่หน้าทดสอบและเผยแพร่ (การตั้งค่า > App Signing)
- ยืนยันข้อมูลเข้าสู่ระบบ App Signing
สร้างและเรียกใช้โปรเจ็กต์
ตอนนี้คุณสร้างและเรียกใช้โปรเจ็กต์เกมได้แล้ว เมื่อเกมเริ่ม คุณจะเห็นความพยายามในการลงชื่อเข้าใช้โดยอัตโนมัติ
คุณต้องมีอุปกรณ์จริงที่ใช้ Android ซึ่งเปิดใช้การแก้ไขข้อบกพร่อง USB หรือ โปรแกรมจำลองที่เรียกใช้โปรเจ็กต์ที่พัฒนาแล้วได้
ดึงรหัสการตรวจสอบสิทธิ์เซิร์ฟเวอร์
หากต้องการเข้าถึง Google APIs ในเว็บเซิร์ฟเวอร์แบ็กเอนด์ในนามของผู้เล่นปัจจุบัน คุณต้องรับรหัสการตรวจสอบสิทธิ์จากแอปพลิเคชันไคลเอ็นต์และ ส่งรหัสนี้ไปยังแอปพลิเคชันเว็บเซิร์ฟเวอร์ จากนั้นสามารถแลกเปลี่ยนรหัสเป็น โทเค็นการเข้าถึงเพื่อเรียก API ต่างๆ ดูข้อมูลเกี่ยวกับเวิร์กโฟลว์ได้ที่ลงชื่อเข้าใช้ด้วย Google สำหรับเว็บ
วิธีรับรหัสการเข้าถึงฝั่งเซิร์ฟเวอร์
- เพิ่มรหัสไคลเอ็นต์เว็บสำหรับเกมของคุณใน Play Console
- ใน Google Play Console เลือกเกม
- ในหน้าการกำหนดค่า (เพิ่มผู้ใช้ > บริการเกมของ Play > การตั้งค่าและการจัดการ > การกำหนดค่า) ให้คลิกเพิ่มข้อมูลเข้าสู่ระบบ
- ในหน้าเพิ่มข้อมูลเข้าสู่ระบบ ให้เลือกเซิร์ฟเวอร์เกม
- สร้างรหัสไคลเอ็นต์ OAuth 2.0
- จดค่ารหัสไคลเอ็นต์ คุณจะต้องระบุค่านี้ในภายหลัง
เพิ่มรหัสไคลเอ็นต์เว็บลงใน Unity Hub
- ใน Unity Hub ให้ตั้งค่า Google Play Games สำหรับ Unity และลงชื่อเข้าใช้
- ใน Unity Hub ให้ไปที่ Window > Google Play Games > Setup > Android Setup
- ป้อนค่ารหัสไคลเอ็นต์
ดึงรหัสการตรวจสอบสิทธิ์ของเซิร์ฟเวอร์สำหรับขอบเขตเพิ่มเติม
C#
using GooglePlayGames.BasicApi; // Define selectedScope having additional identity scopes. private List
selectedScopes = new List (); // Add scopes you want to request. selectedScopes.Add(AuthScope.OPEN_ID); selectedScopes.Add(AuthScope.PROFILE); selectedScopes.Add(AuthScope.EMAIL); // Call RequestServerSideAccess with additional scopes and retrieve // authcode and grantedscopes list. PlayGamesPlatform.Instance.RequestServerSideAccess( /* forceRefreshToken= */ false,selectedScopes (AuthResponse authResponse) => { string authCode = authResponse.GetAuthCode(); List grantedScopes = authResponse.GetGrantedScopes(); // send authCode to server... });
ตั้งค่าและเพิ่มฟีเจอร์
เปิดใช้ฟีเจอร์บริการเกมของ Play
เพิ่มฟีเจอร์ลงในเกมโดยใช้ API ของบริการเกมของ Play ดังนี้
Recall API สำหรับ Unity (รองรับเฉพาะปลั๊กอิน Unity เวอร์ชัน v11 ขึ้นไป)