Prefab Pada Unity

Hello, pada kesempatan kali ini saya akan membagikan materi pemrograman permainan dalam Menggunakan Prefab dan fungsi Instantiate() pada Unity.


Prefab merupakan sebuah GameObject yang disimpan ke dalam Assets, yang nantinya bisa dimanfaatkan menjadi GameObject kembali. Pada prefab ini kita dapat menggabungkan beberapa object atau komponen menjadi satu. Jadi kita dapat membuat/customized object yang akan digunakan.
Pertama, seperti biasa kita bisa membuat project baru atau cukup dengan membuat scene saja jika ingin tetap menggunakan project yang sudah ada.


Fungsi Instantiate() atau yang dalam banyak forum lebih sering disebut dengan: "Fungsi untuk membuat Game Object secara runtime."







Tambahkan sebuah Plane dengan cara klik menu GameObject > 3D Object > Plane lalu ganti namanya menjadi Lantai1.
Kemudian Atur posisi Main Camera dan plane menggunakan gizmo atau panel Transform sehingga Kamera dapat melihat lantai dengan jelas berada di bawah.


Tambahkan plane kedua, ganti namanya menjadi Lantai2 dan atur scalenya menggunakan tombol Scale di pojok kiri atas atau masukkan angkanya pada panel transform.
Angkat posisi Lantai2 sedikit ke atas dan atur kemiringannya sehingga mirip seperti gambar dibawah.



Selanjutnya buat GameObject Child pada object Lantai2 dengan cara klik object Lantai2 klik menu GameObject > Create Empty Child dan beri nama object dengan 'TitikJatuh'


Atur posisi GameObjectChild tadi menggunakan gizmo atau panel Transform sehingga sedikit di atas Lantai2 seperti gambar dibawah.




Selanjutnya buat sebuah Sphere baru dengan cara klik menu GameObjects > 3D Object > Spphere dan ganti namanya menjadi 'MyBall'.


Tambahkan sebuah gambar pada panel Assets dengan cara klik kanan pada panel Assets > Import New Assets..., lalu pilih salah satu gambar yang ada di komputer Kalian. Dapat juga dengan mengunduh dan mengimpor assets yang ada pada assets store unity. Teman - teman dapat juga hanya dengan drag and drop dari directory komputer ke dalam unity. Kemudian untuk menambahkan ke object nya hanya dengan drag and drop saja assetsnya.

Berikutnya tambahkan RigidBody pada object MyBall dengan cara klik menu Component > Physics > Rigidbody.


Rigidbody adalah sebuah komponen penting yang dapat membuat GameObject seolah-olah memiliki berat dan dapat dipengaruhi oleh gaya gravitasi.


Buat sebuah Physic Material dengan cara klik Assets > Create > Physics Material dan beri nama 'Bounce'.

Lalu ubah parameter Bounciness menjadi 1 pada inspector pysical material bounce tadi untuk menambahkan efek memantul.



Kemudian tambahkan Material Bounce ke Object MyBall dengan cara drag and drop. Jika sudah maka akan tampil material bounce pada Sphere Collider.




Kemudian buat prefab dengan menggunakan object MyBall dengan cara drag and drop ke assets/folder yang disediakan seperti pada gambar dibawah ini.


Jika Prefab MyBall sudah dibuat, dapat menghapus GameObject MyBall dari tab Hierarchy, karena yang akan kita gunakan adalah Prefab yang sekarang sudah ada di Assets.

Prefab adalah sebuah instansiasi dari sebuah GameObject sehingga GameObject yang sudah pernah dibuat bisa digunakan kembali dengan cepat. Selain itu Prefab memungkinkan GameObject digandakan menggunakan script.

Kemudian buat script C# beri nama 'GandakanBola.cs' ketikkan seperti pada gambar di bawah.

Selanjutnya pasang script tersebut di GameObject mana saja, lalu pastikan parameter TempatJatuh dan parameter Bola diisi.
Parameter Tempat Jatuh diisi dengan GameObject TitikJatuh, sedangkan parameter Bola diisi dengan prefab MyBall.

Lalu coba jalankan game dan perhatikan, klik tombol Buat Bola berkali - kali. Perhatikan pula kondisi tab Hierarchy dengan seksama, semua GameObject yang terbentuk dan terterah di sana akan menghilang secara otomatis setelah 5 detik. Beginilah cara Unity membuat GameObject secara runtime sekaligus menjaga kestabilan penggunaan memori pada Komputer.

Komentar

Postingan Populer