In Unity, vector is used a lot to represent concept such as location, speed, and force. Without proper understanding of vector, it would be very difficult to develop any game in Unity. Thus, before learning how to code in unity, we shall learn the vector concept properly.
Study the bellow PDF document to learn minimum basic concept of vector required for Unity.
Jalankan program Android Studio tunggu sampai selesai. Ini akan menginstall komponen komponen Android Studio termasuk Android SDK. Jika diperlukan edit lokasi path untuk JDK dan Android SDK di Unity pada menu Edit->Preference->External Tools
Cek apakah install sudah berhasil. Buat project Unity sederhana dan coba membuat file android APK dari project tersebut.
Jika ada masalah mengenai tentang Gradle, lakukan step ini. Untuk Unity versi 2018 dan versi 5, Android SDK Tools versi terakhir yang terinstall tidak compatible dengan Unity. Kita harus mendownload versi 25 dan mengaktifkannya dengan procedur sebagai berikut:
Extract zip file tersebut dan replace folder tool dari hasil extract ke directory tool di directory Android SDK di komputer anda. Di Windows: C:\Users\YourUsername\AppData\Local\Android\sdkDi Mac: /Users/UserName/Library/Android/sdk/tools
Untuk mengaktifkan folder Library di Mac. Lakukan prosedur sebagai berikut: - Buka Finder - Menu : Go - Home - File Modenya ubah ke mode Icon atau List jangan ke mode column - Menu : View - Show Option - Option "Show Library Folder" di show.
Kali ini kita akan membuat efek ledakan keren saat mush terkena tembakan. Untuk itu kita akan menggunakan feature particle system yang ada di unity. Berikut adalah video tutorialnya.
Berikut adalah script yang terlibat pada feature ledakan.
Script untuk object Explosion
script diatas berfungsi untuk menghancurkan object Explosion setelah 0.5 detik object tersebut dibuat.
Script untuk Sprite Enemy
Script diatas berfungsi untuk menampilkan efek ledakan di posisi sprite Enemy saat terkena tembakan.
Berikut adalah detail setting dari particle system yang digunakan untuk membuat efek ledakan.
Kali ini kita akan menambahkan fitur animasi untuk game kita. Jika kita memencet tombol right arrow maka animasi kucing berjalan ke kanan akan dilakukan. Jika kita memencet tombol left arrow maka animasi kucing berjalan ke kiri akan dilakukan.
Berikut adalah gambar-gambar yang dibutuhkan untuk animasi berjalan.
Pada gambar diatas, costume 1 dan 2 adalah untuk animasi berjalan ke kanan sedangkan costume 3 dan 4 adalah untuk animasi berjalan ke kiri.
Berikut script pada scratch untuk menambahkan fiture animasi berjalan ke kanan dan ke kiri.
Pada script di atas kita menggunakan variabel baru bernama AnimationId. Jika variabel AnimationId berisi angka 0 maka animasi jalan kanan yang berjalan. Jika variabel AnimationId berisi angka 1 maka animasi jalan kiri yang berjalan. Pada saat tombol right arrow di tekan makan variabel AnimationId diisi dengan angka 0 sedangkan jika tombol left arrow yang ditekan maka variabel AnimationId diisi dengan angka 1.
Pada Unity hal yang serupa akan kita lakukan.
Berikut adalah modifikasi dari fungsi Update dari Script untuk Sprite Kucing
Seperti pada Scratch, saat tombol RightArrow ditekan, variabel animasi bernama AnimationId diisi dengan angka 0. Ini akan menyebabkan animasi bernama AnimWalkRight (kucing jalan ke kanan) akan dijalankan. Saat tombol Left Arrow ditekan, variabel AnimationId diisi dengan angka 1. Ini akan menyebabkan animasi bernama AnimWalkLeft (kucing jalan ke kiri) akan di kerjakan.
Berikut adalah penampakan variabel animasi AnimationId dan animasi AnimWalkRight dan animasi AnimWalkLeft pada user interface Animation di Unity.
Tanda panah dari AnyState menuju AnimWalkRight dinamakan State Transition yang artinya Unity dapat menjalankan animasi AnimWalkRight saat Unity sedang sibuk menjalankan animasi apapun jika kondisi transisi tersebut memenuhi syarat. Dalam hal ini jika AnimationId berisi angka 0 maka kondisi memenuhi syarat dan AnimWalkRight akan segera dijalankan oleh Unity. Hal yang serupa berlaku pula untuk tanda panah dari AnyState menuju AnimWalkLeft.
Berikut adalah setting dari State Transition dari AnyState menuju AnimWalkRight.
Video berikut adalah tutorial bagaimana membuat animasi pada Unity (AnimWalkLeft, AnimWalkRight, AnimationId, dan State Transition) dan menggunakannya bersama script kucing yang ada di atas.
Kali ini kita akan menambah fitur baru yang hanya berlaku untuk Unity yaitu mengontrol Sprite Kucing dengan menggunakan touch screen. Ini diperlukan karena HP dan Tablet android kebanyakan tidak memiliki keyboard oleh karena itu Sprite Kucing hanya bisa dikontrol dengan menggunakan touch screen. Dalam fitur ini terdapat tiga tombol baru di layar.
Tombol Left : jika ditekan Sprite Kucing bergerak ke kiri.
Tombol Right : jika ditekan Sprite Kucing bergerak ke kanan.
Tombol Shoot: jika ditekan Sprite Bola akan ditembakkan oleh Sprite Kucing.
Berikut adalah penampakan game yang sudah jadi.
Script untuk Sprite Kucing:
Pada script di atas kita menambahkan 3 variable baru.
Variabel MoveLeft. Jika berisi angka 1 maka sprite kucing bergerak ke kiri. Variabel ini diisi angka 1 ketika fungsi MoveLeftButtonDown dikerjakan dan diisi angka 0 ketika MoveLeftButtonUp dikerjakan.
Variabel MoveRight. Jika berisi angka 1 maka sprite kucing bergerak ke kanan. Variabel ini diisi angka 1 ketika fungsi MoveRightButtonDown dikerjakan dan diisi angka 0 ketika MoveRightButtonUp dikerjakan.
Variabel Shoot. Jika berisi angka 1 maka sprite kucing akan menembak. Variabel ini diisi angka 1 ketika fungsi ShootButtonDown dikerjakan dan diisi angka 0 ketika ShootButtonUp dikerjakan.
Perhatikan pada script diatas, pada perintah if di fungsi update kita menemukan symbol ||. Symbol tersebut berarti atau. Dengan demikian jika tombol Right Arrowatau variabel MoveRight berisi angka 1 maka gerakkan sprite kucing ke kanan.
Sebelum dijalankan kita harus membuat terlebih dahulu Button UI untuk tombol Left, Right, dan Shoot seperti pada gambar berikut.
Video berikut berisi tutorial bagaimana membuat Button UI untuk tombol Left, Right, dan Shoot dan bagaimana menghubungkan tombol tersebut dengan script dari Sprite Kucing.
Kali ini kita akan memodifikasi program Scratch sehingga game berhenti setelah 20 detik (Game Over). Hitungan mundur dilakukan sejak game mulai dari angka 20, berkurang 1 setiap 1 detik sampai angka 0. Setelah hitungan mundur mencapai angka 0, game berhenti berjalan. Sprite Kucing tidak bisa jalan ke kanan dan kekiri begitu pula tidak ada musuh baru yang dibuat. Berikut penampakan game dengan fitur hitung mundur:
Script untuk Game Manager:
Pada script di atas kita membuat variable baru bernama TimeLeft. Di block CountDown, variabel ini diisi angka 20 kemudian dikurangan 1 setiap detiknya. Jika variable TimeLeft ini telah sama dengan 0 maka game selesai dan perintah stop all dikerjakan. Perintah stop all adalah perintah untuk menghentikan semua script untuk semua Sprite yang ada di program scratch dengan demikian Sprite kucing tidak dapat bergerak dan pembuatan Enemy dihentikan.
Di Unity, kita akan melakukan hal berikut:
Seperti pada Scratch, game akan selesai setelah hitung mundur yang dimulai dari 20 mencapai angka 0. Saat game selesai, tidak boleh ada Sprite yang bisa bergerak dan pembuatan Sprite Enemy juga harus dihentikan.
Saat game selesai kita munculkan tombol Play (Play Button). Jika tombol ini ditekan maka game akan dimulai lagi dari awal. Hal ini perlu dilakukan karena pada Hp atau Tablet Android, tidak ada tombol Start Game seperti yang telah disediakan oleh program Scratch (tombol bendera berwarna hijau). Tombol Play ini akan hilang saat game dimulai.
Berikut penampakan saat game selesai di Unity.
Script untuk Game Manager:
Pada script di atas kita membuat variable baru yaitu TimeLeft. Variabel ini diisi angka 20 pada saat game dimulai (pada fungsi Start). Kemudian pada fungsi CountDown, variabel TimeLeft dikurangi satu setiap selang waktu 1 detik. Jika TimeLeft berisi angka 0 maka kita lakukan hal-hal berikut untuk menyelesaikan game:
Kerjakan fungsi StopAllCoroutines(). Hal ini akan menyebabkan semua Coroutine yang ada pada script ini dihentikan. Coroutine yang ada pada script ini yaitu CreateEnemies dan CountDown dengan demikian pembuatan musuh akan dihentikan begitu juga proses hitung mundur juga dihentikan.
Isi Variable GameOver dengan angka 1. Variabel ini akan digunakan oleh script yang lain untuk mengecek apakah Sprite boleh bergerak atau tidak. Jika berisi angka 0 maka Sprite boleh bergerak (tidak game over), sedangkan jika tidak (GameOver berisi angka 1) maka Sprite tidak boleh bergerak.
Tampilkan tombol Play (variabel PlayButton) dengan menggunakan perinta SetActive(true). Pada saat game dimulai yaitu pada fungsi Start, tombol Play disembunyikan dengan menggunakan perintah SetActive(false). Tombol Play ini harus dihubungkan dengan Play Button UI dengan cara seperti yang diterangkan pada video tutorial di akhir artikel ini.
Pada script di atas fungsi RestartGame adalah fungsi yang akan dikerjakan jika tombol Play diclick. Dalam fungsi tersebut akan dikerjakan fungsi LoadLevel("MainScene") yang bertugas untuk memuat ulang (restart) file scene game kita yang dalam hal ini bernama "MainScene". Lihat video tutorial mengenai cara menghungkan tombol Play dengan fungsi RestartGame pada Game Manager.
Script untuk Sprite Kucing:
Pada script diatas sprite Kucing hanya dapat bergerak dan menembak jika GameOver berisi angka 0 (tidak Game Over).
Script untuk sprite Enemy:
Pada script diatas sprite Enemy hanya dapat bergerak jika GameOver berisi angka 0 (tidak Game Over).
Script untuk Sprite Bola
Pada script diatas sprite Bola hanya dapat bergerak jika GameOver berisi angka 0 (tidak Game Over).
Sebelum game dijalankan terlebih dulu kita harus membuat Text UI untuk Time Left yang akan berisi tulisan hitungan mundur dan juga Button UI untuk tombol Play. Berikut adalah penampakan dari Text UI dan Button UI yang harus dibuat.
Video berikut berisi tutorial mengenai bagaimana membuat Text UI untuk hitungan mundur dan juga membuat tomboll play yang akan digunakan bersama script di atas.
Tugas-6
Perbaharui script game sehingga jika sprite Kucing terkena tembakan atau terkena musuh, game juga selesai (game over). Saat game selesai tidak boleh ada sprite baru yang dibuat dan sprite yang ada yang masih bergerak, semua harus berhenti.
Petunjuk: saat sprite Kucing terkena musuh atau peluru musuh, sprite Kucing mengirim message "HandleGameOver" kepada Game Manager. Fungsi dengan nama yang sama dengan message yang ada pada Game Manager (fungsi HandleGameOver) akan melakukan hal yang sama dengan saat hitung mundur telah mencapai angka 0.
This time we will add following features to our game:
Background picture
Background music that is continuously played.
Sound effect when shooting.
Sound effect when enemy is shot and disappear.
In Scratch, below is how the game will look like after the background picture is added.
For background music, in Scratch, we update the Game Manager to add following script.
For the shooting sound effect, in Scratch, we update the Ball sprite.
For enemy shot sound effect, in Scratch, we update the Enemy sprite.
In Unity we are going to do the same as above.
For shooting sound effect, we update the Ball sprite script.
For the enemy shot sound effect, we update the Enemy sprite script.
For background music that is continuously played, in Unity, we do not need script update. It is enough to add an Audio Source component to the Game Manager with the following setting.
Below video is the tutorial on how to add the background picture, background music, and sound effect in Unity using the above scripts.
Below is the comparison between Scratch and Unity.
Play Sound Effect
In Scratch
In Unity
Assignment-5
Play the different sound effect when the enemy that is moving down (see assignment-1) is touched by the Ball sprite.