Topik ini menjelaskan cara menyiapkan project Unity untuk menggunakan plugin Google Play Game untuk Unity. Tugas-tugas ini termasuk menyiapkan project, memilih platform media sosial, dan menyiapkan login pemain.
Sebelum memulai
Di Konsol Google Play, siapkan Konsol Play untuk game Anda.
Di Konsol Google Play, buat pencapaian.
Penginstalan Plugin
Dapatkan plugin menggunakan salah satu opsi berikut:
Clone repositori GitHub ke sistem file Anda.
Download repositori GitHub sebagai file ZIP, lalu ekstrak file tersebut.
Cari file
unitypackage
di direktoricurrent-build
. File ini, adalah plugin. Misalnya, contoh tersebut akan terlihat seperti berikut:current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
Buka project game Anda di Unity.
Impor file
unitypackage
ke dalam aset project Anda dengan mengklik item menu Assets > Import Package > Custom Package.Pastikan platform build Anda saat ini disetel ke Android.
Di menu utama, klik File > Build Settings….
Pilih Android lalu klik Switch Platform.
Harus ada item menu baru di bagian Window > Google Play Game. Jika tidak ada, muat ulang aset dengan mengklik Assets > Refresh, lalu coba tetapkan platform build lagi.
Mendapatkan resource Android dari Konsol Play
Setiap pencapaian, papan peringkat, dan peristiwa yang Anda buat di Konsol Play akan menyertakan resource Android yang Anda gunakan saat menyiapkan project Unity.
Dapatkan resource Android untuk game Anda.
Di Konsol Play, buka project Layanan game Play untuk game Anda.
Klik tab Achievements, lalu klik Get resources.
Di jendela Export resources, klik tab Android.
Pilih dan salin konten XML.
Menyiapkan project Unity Anda
Tambahkan resource Android ke project Unity Anda.
Di Unity, klik ** Window > Google Play Game > Setup ... > Android Setup **.
Selesaikan item ini di jendela penyiapan:
Directory to save constants: Folder untuk file konstanta.
Constants class name: Nama class C# yang akan dibuat, termasuk namespace.
Resources Definition: Tempel data resource Android dari Konsol Play di sini.
Web client ID: Client ID aplikasi web tertaut. Client ID ini hanya diperlukan jika Anda memiliki backend berbasis web untuk game dan memerlukan kode autentikasi server untuk ditukar dengan token akses oleh server backend, atau jika Anda memerlukan token ID untuk pemain guna melakukan panggilan API non-game lainnya.
Klik Setup. Tindakan ini akan mengonfigurasi game Anda dengan client ID dan membuat class C# yang berisi konstanta untuk setiap resource Android.
Penyiapan Android
Siapkan jalur ke penginstalan Android SDK di Unity. Penyiapan ini ada di menu preferensi, di bagian External Tools.
Untuk mengonfigurasi game Unity Anda agar dapat berjalan dengan Google Play Game di Android, pertama-tama buka Android SDK Manager dan pastikan Anda telah mendownload paket berikut. Bergantung pada apakah Anda menggunakan SDK Manager dari Android Studio, atau menggunakan SDK Manager mandiri, nama komponennya dapat berbeda. - Layanan Google Play - Android Support Library - Repositori Maven lokal untuk Support Library (Juga disebut Android Support Repository) - Repositori Google - Android 6.0 (API 23) (ini tidak memengaruhi versi SDK min).
Selanjutnya, konfigurasikan nama paket game Anda. Untuk melakukannya, klik File > Build Settings, pilih platform Android, lalu klik Player Settings untuk menampilkan Setelan Pemain Unity. Di jendela tersebut, cari setelan Bundle Identifier di bagian Other Settings. Masukkan nama paket Anda di sana (misalnya, com.example.my.awesome.game).
Untuk login ke Layanan game Play, Anda harus menandatangani file APK, memastikan bahwa Anda menandatanganinya dengan sertifikat yang benar, yaitu yang sesuai dengan sidik jari sertifikat SHA1 yang Anda masukkan di Konsol Play selama penyiapan.
Selanjutnya, klik item menu Window |Google Play Games|Setup - Android setup. Tindakan ini akan menampilkan layar penyiapan Android.
Masukkan nama class Constants. Ini adalah nama class yang sepenuhnya memenuhi syarat,
yang akan diperbarui (atau dibuat) yang berisi ID dari resource game.
Format namanya adalah <namespace>.<classname>
. Misalnya,
AwesomeGame.GPGSIds
Tempel data definisi resource. Data definisi resource adalah data XML dari Konsol Google Play yang berisi ID resource serta ID Aplikasi untuk Android.
Data ini dapat ditemukan di Konsol Google Play dengan mengklik "Dapatkan resource" di halaman resource mana pun (misalnya, Pencapaian atau Papan Peringkat), lalu mengklik Android.
Setelah menempelkan data ke area teks, klik tombol Setup.
Catatan: Jika menggunakan aplikasi web atau server backend dengan game, Anda dapat menautkan aplikasi web ke game untuk mendapatkan token ID dan/atau alamat email pemain. Untuk melakukannya, tautkan aplikasi web ke game di Konsol Google Play, dan masukkan client id untuk aplikasi web ke dalam dialog penyiapan.
Petunjuk tambahan tentang cara mem-build aplikasi untuk Android di Windows
Jika menggunakan Windows, Anda harus memastikan bahwa penginstalan Java SDK dapat diakses oleh Unity. Untuk melakukan ini:
- Tetapkan variabel lingkungan JAVA_HOME ke jalur penginstalan Java SDK
(misalnya
C:\Program Files\Java\jdk1.7.0_45
). - Tambahkan folder
bin
Java SDK ke variabel lingkunganPATH
Anda (misalnya,C:\Program Files\Java\jdk1.7.0_45\bin
) - Reboot.
Cara mengedit variabel lingkungan: Di Windows 2000/XP/Vista/7, klik kanan My Computer, lalu Properties, lalu buka Advanced System Properties (atau System Properties, lalu klik tab Advanced), lalu klik Environment Variables. Di Windows 8, tekan Windows Key + W dan telusuri variabel lingkungan. Untuk informasi selengkapnya, baca dokumentasi untuk versi Windows.
Menjalankan project
Jika menangani contoh Smoketest, Anda akan dapat mem-build dan menjalankan project pada tahap ini. Anda akan melihat upaya login otomatis saat Smoketest dimulai.
Untuk mem-build dan menjalankan di Android, klik File > Build Settings, pilih platform Android, lalu Switch to Platform, lalu Build and Run.
Memilih platform media sosial
Plugin Google Play Game mengimplementasikan antarmuka sosial Unity untuk kompatibilitas dengan game yang sudah menggunakan antarmuka tersebut saat berintegrasi dengan platform lain. Namun, beberapa fitur bersifat unik untuk Play Game dan ditawarkan sebagai ekstensi untuk antarmuka sosial standar yang disediakan oleh Unity.
Panggilan API standar dapat diakses melalui objek Social.Active yang merupakan referensi ke antarmuka ISocialPlatform. Ekstensi Google Play Game non-standar dapat diakses dengan mentransmisikan objek Social.Active ke class PlayGamesPlatform apabila metode tambahan tersedia.
Menggunakan plugin tanpa mengganti platform media sosial default
Saat Anda memanggil PlayGamesPlatform.Activate
, Google Play Game akan menjadi
implementasi platform media sosial default, yang berarti bahwa panggilan statis ke metode
di Social
dan Social.Active
akan dilakukan oleh login
Google Play Game. Perilaku ini diinginkan untuk sebagian besar game yang menggunakan plugin.
Namun, jika karena alasan tertentu Anda ingin tetap membuat implementasi default dapat diakses (misalnya, untuk menggunakannya untuk mengirimkan pencapaian dan papan peringkat ke platform media sosial lain), Anda dapat menggunakan plugin Google Play Game tanpa mengganti implementasi default. Untuk melakukan ini:
- Jangan panggil
PlayGamesPlatform.Activate
- Jika
Xyz
adalah nama metode yang ingin Anda panggil di classSocial
, jangan panggilSocial.Xyz
. Sebagai gantinya, panggilPlayGamesPlatform.Instance.Xyz
- Jangan gunakan
Social.Active
saat berinteraksi dengan Google Play Game. Sebagai gantinya, gunakanPlayGamesPlatform.Instance
Dengan begitu, Anda bahkan dapat mengirimkan skor dan pencapaian secara bersamaan ke dua atau beberapa platform sosial:
// 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);
Memverifikasi layanan login
Koneksi ke Layanan game Play otomatis dicoba menggunakan Layanan login saat game dibuka. Jika koneksi berhasil, game Anda akan menampilkan perintah login dan siap menggunakan plugin Google Play Game untuk Unity.
Jika belum pernah menggunakan Google Play Game di perangkatnya, pengguna akan otomatis diarahkan melalui layar penyiapan satu kali untuk membuat akun Play Game.
Dalam metode Start
skrip Anda, proses hasil upaya login
otomatis, ambil status autentikasi, dan nonaktifkan
fitur Layanan game Play jika pengguna tidak login.
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).
}
}
}
Kode hasil adalah enum yang dapat Anda gunakan untuk mengidentifikasi alasan kegagalan login.
Jika lebih suka menggunakan platform Social pada Unity, Anda dapat menggunakan kode berikut:
using GooglePlayGames;
public void Start() {
PlayGamesPlatform.Activate();
Social.localUser.Authenticate(ProcessAuthentication);
}
Anda tidak dapat melakukan panggilan Google Play Game API sampai mendapatkan
nilai return dari Authenticate
. Oleh karena itu, sebaiknya game menampilkan
layar standby sampai callback dipanggil untuk memastikan pengguna tidak dapat mulai memainkan
game hingga autentikasi selesai.
Mengambil kode autentikasi server
Agar dapat mengakses Google API di server web backend atas nama pemain saat ini, Anda harus mendapatkan kode autentikasi dari aplikasi klien dan meneruskannya ke aplikasi server web Anda. Kemudian kode ini dapat ditukarkan dengan token akses untuk melakukan panggilan ke berbagai API. Untuk informasi tentang alur kerja, lihat Login dengan Google untuk Situs.
Untuk mendapatkan kode akses sisi server:
Konfigurasi client ID web dari aplikasi web yang ditautkan ke game Anda di Konsol Play Game.
Panggil
PlayGamesPlatform.Instance.RequestServerSideAccess
setelah pemain diautentikasi untuk mendapatkan kode akses sisi server.Teruskan kode ini ke aplikasi server Anda.
PlayGamesPlatform.Instance.RequestServerSideAccess(
/* forceRefreshToken= */ false,
code -> {
// send code to server
});
Menyiapkan dan menambahkan fitur
Aktifkan fitur Layanan game Play.
Tambahkan fitur ke game Anda menggunakan Play Game Services API: