Pada kesempatan kali ini akan dibahas mengenai cara menggandakan gameObject (objek) pada Unity. Untuk menggandakan sebuah/beberapa objek dalam Unity, akan digunakan sebuah asset pada unity yang disebut dengan Prefab. Prinsip prefab adalah reusable, maksudnya adalah dimungkinkanya penggunakan objek yang sama secara berulang-ulang.
Untuk lebih mengenal terkait dengan prefab, silakan ikuti langkah berikut:
Langkah 1 : Setelah masuk dalam projek Unity, buatlah gameObject. Mula-mula buatlah sebuah GameObjet plane dengan cara klik(kiri) pada jendela Hierarchy à3D Object à Plane atau klik (kiri) pada menu GameObject à3D Object à Plane.
Dan lakukan cara yang sama untuk membuat GameObject Sphere (bola), sehingga hasilnya seperti ini:
Langkah 2 : Menggunakan asset prefab. Prefab dapat dibuat dengan cara klik(kiri) pada tempat kosong dalam jendela Assets à Create à Prefab atau klik(kiri) Menu Assets à Create à Prefab, setelah itu berilah sebuah nama (misal: prefabBola).
Maka akan terbentuk sebuah Asset baru (prefab) sebagai ini:
Langkah 3 : Menggunakan prefab untuk menggandakan objek. Caranya adalah dengan drag & drop objek dari jendela hierarchy yang akan digandakan ke dalam prefab di jendela Assets (misal : dalam kasus ini yang akan digandakan adalah objek Sphere atau bola yang sebelumnya telah dibuat).
Jika berhasil, maka gambar asset prefab yang semula adalah kotak persegi empat akan berubah menjadi bentuk bola seperti ini:
Selanjutnya adalah menggunakan prefab tersebut untuk membuat objek yang sama (menggandakan), dengan cara drag & drop prefab dari jendela Assets ke screen Scene.
Dengan begitu tidak perlu lagi membuat objek yang sama secara berulang-ulang, cukup dengan menggunakan asset prefab maka objek akan lebih mudah diperbanyak.
- Lalu bagaimana dengan penggandaan objek saat game dijalankan?
Untuk itu diperlukan script pembantu agar dapat menggandakan objek, langkahnya adalah sebagai berikut:
Langkah 1: Membuat file script (C# Script). Script dapat dibuat dengan cara klik(kiri) pada tempat kosong dalam jendela Assets à Create à C# Script atau klik(kiri) Menu Assets à Create à C# Script. Kemudian berilah sebuah nama (misal: GandakanBola.cs).
Langkah 2: Modifikasi file script. Modifikasilah file C# script yang sebelumnya telah dibuat menjadi seperti ini:
(Penjelasan dapat ditemukan dengan mengikuti dokumentasi di bawah)
Langkah 3: Setting posisi objek. Sebelum menggunakan file script yang tadi dibuat, diperlukan lingkungan atau objek yang mendukung, karena jika asal menggandakan sebuah objek nanti akan menyebabkan terjadinya himpitan objek di mana objek satu dengan yang lain saling bertindihan di posisi yang sama. Untuk lebih jelasnya marilah buat sebuah plane secara manual dengan cara yang sebelumnya telah di praktikkan, kemudian biarkan lah plane yang dibuat tetap melayang dan ubahlah ukuran plane menjadi lebih kecil dan miringkan (menggunakan rotate tool). Sehingga menjadi seperti ini:
Langkah 4 : Gunakan script pada objek. Use atau menggunakan script (GandakanBola.cs) objek pada objek manapun dengan cara drag & drop (misal: dalam kasus ini script digunakan pada objek Main Camera)
Setelah digunakan isikan value dari variabel TempatJatuh dan Bola, variabel ini memiliki peran dan fungsi yang berbeda. Variabel Bola berperan untuk memilih objek mana yang kan digandakan dan variabel TempatJatuh berperan untuk menentukan di mana posisi objek akan digandakan (hal ini diatur dalam script GandakanBola.cs line 22-25). Pada kasus ini objek yang akan digandakan adalah objek bola jadi di sini dipilih PrefabBola dan posisi objeknya akan berada tepat di atas plane (1), maka logikanya bola akan mengikuti gaya gravitasi dan menggelinding ke bawah (tidak ada objek yang bertindihan).
Langkah 5 : Membuat objek tampak nyata. Pada proses ini jika program mulai dijalankan coba lah tekan tombol “Buat Bola” untuk menduplikat objek bola. Hasilnya ternyata bola tidak jatuh ketanah dan tetap mengambang di udara, menyebabkan bola yang hasil duplikat yang semula dikira akan menggelinding ke bawah ternyata tidak.
Objek bertindihan sehingga terlihat objek hanya ada satu, padahal aslinya ada lebih dari satu, disebabkan karena posisi yang sama satu antara yang lain.
Untuk membuat objek jatuh ke tanah dan menghindari duplikat objek yang saling bertindihan kita datap menggunakan Component Rigibody. Rigibody adalah salah satu komponen untuk objek yang berfungsi memberikan berat pada objek sehingg seolah objek dapat jatuh mengikuti gaya gravitasi. Caranya adalah seperti ini: Klik (kiri) pada objek (PrefabBola) à Pada jendela Inspector pilih Add Component à Physics à Rigibody
Karena semua bola yang ada di game tersebut merupakan hasil dari PrefabBola, jadi cukup dengan membuat Rigibody pada PrefabBola maka semua objek bola yang ada pada game tersebut akan memiliki sifat yang sama.
Setelah itu pastikan pada bagian use gravity telah terceklis, fitur ini mengatur objek akan mengikuti gaya gravitasi atau tidak.
Langkah 6 : Test program. Jalankan program dan lihat hasilnya, yang awalnya bola tetap melayanng di udara menjadi jatuh ke tanah mengikut gaya gravitasi karena penggunaan rigibody.
Lalu cobalah untuk menggandakan bola dengan menekan tombol “Buat Bola”, maka bola akan menggelinding ke arah bawah.
Pada script ditentukan waktu bola yang diduplikat hanya 5 detik ( Destroy(temp, 5); ), jadi setelah 5 detik bola hasil duplikat akan hilang otomatis, hal ini merupakan bentuk penghematan memory dalam game. Juga pada script pemicu yang dapat menggandakan bola tidak hanya tombol “Buat Bola” namun juga dengan menekan tombol “Space bar” pada keyboard juga dapat menduplikat bola ( if(GUILayout.Button("Buat Bola") || Input.GetKey(KeyCode.Space)) ).
Demikian dokumentasi kali ini, Terima Kasih~
Komentar
Posting Komentar