Pada artikel kali ini saya akan membagi kendala yang saya alami beberapa waktu lalu saat melakukan proses development game, yaitu ketika game android buatan saya yang menggunakan game engine unity3d membutuhkan proses yang lumayan lama hingga terkesan heng / error / not responding ketika saya menekan button "Quit Game", sebelumnya di dalam button "quit" tersebut saya telah memberikan fungsi Application.Quit(); (pembahasan mengenai button skip dulu yah,hhe). Awalnya saya mengira kesalahan ada pada fungsi tersebut, tapi setelah saya mencoba mencari tahu kira-kira ada ngga ya fungsi quit application selain Application.Quit()?, ternyata ada beberapa namun kurang efektif jika dibandingkan dengan fungsi ini (untuk penjelasan mengenai alternatif fungsi tersebut silahkan googling sendiri, hhe).
Lanjut ke permasalahan awal tadi, jadi saya mengira kesalahan ada pada fungsi tersebut, tapi ternyata bukan. Setelah mencari di beberapa artikel terutama yang ada di forum unity ternyata kesalahan ada pada "Google Play Game Services". Penjelasanya mengapa. bagaimana dan apa-apanya silahkan teman-teman cari sendiri yah, yang jelas fitur google play game services (GPGS) tersebut membuat android kita harus terkoneksi dengan server GPGS sehingga ketika kita harus melakukan proses quit, android harus melakukan proses logout data secara paksa. Ibaratnya ketika proses kinerja komputer kita sedang aktif-aktifnya, tiba-tiba kita harus melakukan proses shut-down, otomatis komputer kita harus menutup seluruh aplikasi yang ada, jika banyak aplikasi yang masih belum ditutup maka proses kinerja komputer kita akan menjadi lebih berat karena harus menutup aplikasi yang masih terbuka tadi. Begitu juga dengan GPGS, jika kita masih terkoneksi server dan belum melakukan proses logout server, maka proses kinerja game kita ketika memanggil fungsi quit tadi akan menjadi lebih berat sehingga terkesan error / lemot / heng / not responding dll. Nah, kali ini saya akan memberika potongan script yang harus disertakan teman-teman yang mendukung proses logout GPGS tadi, sehingga nantinya kinerja quit kita menjadi normal dan tidak terkesan error. Berikut potongan script menggunakan bahasa pemrograman C# :
Silahkan pasang potongan kode di atas di dalam tombol quit teman-teman, bisa dipastikan proses quit kalian akan normal kembali. Demikian tutorial dari saya seputar "Application.Quit(); not responding integration with Google Play Game Services", mohon maaf jika ada salah kata atau mungkin dari penjelasan di atas masih kurang jelas. Selamat mencoba, jangan lupa klik tombol "Like" ya, selamat berbagi ^_^
Lanjut ke permasalahan awal tadi, jadi saya mengira kesalahan ada pada fungsi tersebut, tapi ternyata bukan. Setelah mencari di beberapa artikel terutama yang ada di forum unity ternyata kesalahan ada pada "Google Play Game Services". Penjelasanya mengapa. bagaimana dan apa-apanya silahkan teman-teman cari sendiri yah, yang jelas fitur google play game services (GPGS) tersebut membuat android kita harus terkoneksi dengan server GPGS sehingga ketika kita harus melakukan proses quit, android harus melakukan proses logout data secara paksa. Ibaratnya ketika proses kinerja komputer kita sedang aktif-aktifnya, tiba-tiba kita harus melakukan proses shut-down, otomatis komputer kita harus menutup seluruh aplikasi yang ada, jika banyak aplikasi yang masih belum ditutup maka proses kinerja komputer kita akan menjadi lebih berat karena harus menutup aplikasi yang masih terbuka tadi. Begitu juga dengan GPGS, jika kita masih terkoneksi server dan belum melakukan proses logout server, maka proses kinerja game kita ketika memanggil fungsi quit tadi akan menjadi lebih berat sehingga terkesan error / lemot / heng / not responding dll. Nah, kali ini saya akan memberika potongan script yang harus disertakan teman-teman yang mendukung proses logout GPGS tadi, sehingga nantinya kinerja quit kita menjadi normal dan tidak terkesan error. Berikut potongan script menggunakan bahasa pemrograman C# :
void Quit (){
#if UNITY_ANDROID
((GooglePlayGames.PlayGamesPlatform) Social.Active).SignOut();
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject activity = jc.GetStatic<AndroidJavaObject>("currentActivity");
activity.Call<bool>("moveTaskToBack" , true);
#endif
Application.Quit();
}
Silahkan pasang potongan kode di atas di dalam tombol quit teman-teman, bisa dipastikan proses quit kalian akan normal kembali. Demikian tutorial dari saya seputar "Application.Quit(); not responding integration with Google Play Game Services", mohon maaf jika ada salah kata atau mungkin dari penjelasan di atas masih kurang jelas. Selamat mencoba, jangan lupa klik tombol "Like" ya, selamat berbagi ^_^
Wah ini dia yang dicari, nice info gan !! tq ya
ReplyDelete