Membuat Native Android Plugin untuk Unity


Unity Android

Unity merupakan game engine dimana game yang dihasilkan bersifat multi platform. Hasil output game engine ini dapat di porting ke dalam beberapa platform, mulai windows, Mac, iOS, Android, Windows Phone, dan masih banyak platform lainnya. Hal ini tentu sangat-sangat menguntungkan pengguna unity karena sekali develop game yang dihasilkan dapat dipublish ke dalam berbagai platform sesuai dengan keinginan.

Sayangnya, karena game yang dihasilkan sifatnya adalah multi platform maka tidak jarang ada fitur spesifik yang miss dan tidak dapat dibuat dengan Unity. Contoh untuk platform Android. Setahu saya Unity (sebelum dibuat plugin spesifik) tidak dapat digunakan untuk membuat fitur share, notifikasi, widget, background service, dsb. Saya belum banyak meng-explore tentang hal ini, barangkali kalau saya salah mohon dibenarkan.


Untungnya, Unity mengizinkan pemanggilan kelas native Android agar fitur-fitur tersebut dapat diintegrasikan bersama Unity.  Langkahnya kurang lebih kita buat terlebih dahulu Android plugin untuk unity, kemudian kita panggil plugin tersebut untuk menjalankan fungsi native Android.

Ok.. Langsung saja ke intinya.. Pada artikel kali ini saya akan mencoba menjelaskan sedikit tentang cara membuat Android plugin untuk Unity. Sebelum memulai kita lihat dulu apa saja alat dan bahanya :
1. Unity, pada tutorial ini saya memakai unity 4.5.1.
2. Eclipse ADT (Android Developer Tools). Merupakan modifikasi dari eclipse IDE.
3. Android SDK, biasanya satu paket saat mendownload ADT. 
4. Device Android. Kalau tidak ada bisa menggunakan Android emulator

Setelah alat dan bahan siap langsung saja ke stepnya...


Langkah 1. Buat Unity project untuk platform Android
langkah pertama buat unity project. Kemudian switch platformnya ke platfrm android. Untuk switch platform klik file >> build settings

Switch platform unity  android

Tentukan bundle identifier pada player setting. Lihat gambar

Player setting unity android

Langkah 2. Buat Android Project
Untuk membuat Android plugin kita buat dulu Android project. Caranya buka Eclipse ADT kemudian buat project Android baru seperti pada gambar di bawah

Membuat project android untuk plugin unity

Kita tentukan nama aplikasinya. Untuk nama packagenya usahakan sama dengan nama package pada langkah 1. 

Konfigurasi project android

Tentukan lokasi project. Buat 1 activity hanya untuk contoh, agar kita bisa memastikan aplikasi kita dapat berjalan sebelum di-include ke unity.

Menentukan lokasi project android

 Untuk membuat activity cukup next-next aja. Ikuti seperti gambar di bawah.


memberi nama activity

Selanjutnya kita akan mencoba native plugin ini dengan mencobanya ke device. Colokkan perangkat Android Anda di komputer. Atau Anda dapat menjalankan emulator. Buka DDMS dan pastikan koneksi PC - Device sudah berhasil.

Deteksi device pada DDMS

Kemudian run aja. Tekan button 'run' pada bar atas. Lihat statusnya pada console.

Status run android

Tunggu beberapa saat, jika eksekusi berhasil seharusnya di devica Anda akan muncul tampilan seperti pada gambar di bawah.

Langkah 4. Buat Android plugin untuk Unity
Langkah selanjutnya kita akan membuat plugin yang bisa dipanggil di Unity. Pertama buat kelas NativeAndroidBridge.java. 

Membuat kelas untuk plugin unity

adapun isi dari kelas tersebut adalah sbb :

NativeAndroidBridge.java
package com.duniadigit.androidplugin;

public class NativeAndroidBridge{
 private static int number = 0;
 
 public static int getNumber(){
  number += 1;
  return number;
 }
}

Kemudian kita atur properti project menjadi library. Hal ini karena memang project ini nantinya hanya dijadikan library tambahan untuk Unity. Stepnya seperti pada gambar di bawah :

Pertama klik kanan project >> properties

Mengganti properti project

Pada bagian Android >> klik Is Library

Centant IsLibrary karena dibuat plugin

Kemudian lihar pada folder bin. Maka ada androidplugin.jar

Plugin android dengan ekstensi .jar

Langkah 5. Import dan buat kelas Bridge di unity
Kemudian langkah selanjutnya  kita import ke unity. Buat folder /Plugins/Android. Kita drag & drop file androidplugin.jar tadi ke folder ini.

Note : Folder jangan dirubah. Selalu paka folder /Plugins/Android

Import plugin android ke unity


Kemudian buat kelas yang menjadi jembatan antara android plugin dengan unity. Disini saya membuat kelas NativeAndroidBrige.cs

Kelas bridge untuk komunikasi dengan plugin android

Adapun isi dari kelas ini adalah sbb :

using UnityEngine;
using System.Collections;

public class NativeAndroidBridge : MonoBehaviour {
 public static int GetNumber(){
  int number = 0;

  if(Application.platform == RuntimePlatform.Android){
   AndroidJavaClass androidJavaClass = new AndroidJavaClass("com.duniadigit.androidplugin.NativeAndroidBridge");
   number = androidJavaClass.CallStatic("getNumber");
  }

  return number;
 }
}

Langkah 6. Test
Langkah selanjutnya adalah melakukan test apakah plugin ini berjalan dengan baik atau tidak. Untuk melakukannya saya buat kelas tambahan. Saya beri nama GameGUI.cs

Kelas GUI untuk test plugin android


Adapun isi dari GameGUI adalah sbb :

using UnityEngine;
using System.Collections;

public class GameGUI : MonoBehaviour {
 private int number;

 void OnGUI(){
  GUI.Box(new Rect(0,0,Screen.width, 25), number.ToString());
  bool isButtonPressed = GUI.Button(new Rect(0,30,100,25), "Get Number");
  if(isButtonPressed){
   number = NativeAndroidBridge.GetNumber();
  }
 }
}

Implementasikan eklas tersebut ke dalam scene. Pada contoh ini saya meletakkan script ini ke object camera.

Meletakkan kelas GUI ke dalam scene

Karena plugin ini hanya berjalan di Android, maka kembali colokkan device Anda ke PC. Kemudian klik file >> build & run atau ctrl+B. Hasilnya adalah sbb :

Test plugin android unity

KESIMPULAN
Tutorial ini adalah tutorial sederhana membuat plugin Android untuk Unity. Pada tutorial ini plugin akan memberikan result balik berupa angka. Sedangkan unity hanya bertugas meminta angka tersebut kepada plugin.


Ok... sekian artikel yang dapat saya sampaikan. Terima kasih telah membaca. Semoga bermanfaat dan   terus berkarya ^^

Download link project klik disini



Post a Comment for "Membuat Native Android Plugin untuk Unity"