Saturday, April 25, 2020

Tutorial Membuat Prefab pada Unity

Assalamualaikum wr wb

Salam sejahtera bagi kita semua

Kali ini saya akan mencoba membagikan sebuah tutorial membuat prefab pada unity seperti apa yang sudah diajarkan oleh dosen saya sendiri yaitu bapak Dolly Virgian Shaka Yudha Sakti M.Kom

Sebelum masuk ke Tutor saya akan menjelaskan sedikit tentang prefab, Prefab merupakan sebuah GameObject yang disimpan ke dalam Assets, yang nantinya bisa dimanfaatkan menjadi GameObject kembali.

Dan saya disini akan menggunakan fungsi baru, yaitu Fungsi Instantiate() atau yang dalam banyak forum lebih sering disebut dengan: "Fungsi untuk membuat GameObject secara runtime."

Langkah pertama ialah buatlah Project baru dengan nama TutorPrefab


Jika sudah berhasil, lalu tambahkan object 3D Plane dengan cara klik menu GameObject -> 3D Object -> Plane lalu ganti namanya menjadi Lantai1.


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



atur kemiringan Lantai2 sehingga mirip seperti gambar berikut.


Jika sudah seperti diatas, langkah selanjutnya adalah membuat GameObject Child dengan cara Klik Lantai2 pada tab Hierarchy lalu klik GameObject -> Create Empty Child. Kita beri nama TitikJatuh



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



Selanjutnya, tambahkan object Sphere dengan cara klik menu GameObjects -> 3D Object -> Spphere dan ganti namanya menjadi MyBall.



Agar terlihat lebih menarik, 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 Anda.



Dari panel Assets, drag gambar tersebut menggunakan mouse lalu letakkan pada MyBall, Lantai1 dan Lantai2 dengan cara drag and drop sehingga terlihat seperti di bawah ini.



Lalu kita tambahkan efek Rigidbody dengan cara 
Klik MyBall dan tambahkan RigidBody dengan cara klik menu Component -> Physics -> Rigidbody.
Perlu diketahui, Rigidbody sendiri 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.


Ganti parameter Bounciness menjadi 0.9 untuk menambahkan efek memantul.


Kita kembali ke GameObject MyBall, tambahkan Material Bounce dengan cara drag dari panel Assets ke panel Sphere Collider, parameter material. Atau klik tombol kecil di kolom Material pada komponen Sphere Collider milik MyBall




Langkah berikutnya ialah membuat prefab, 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.

Pertama, buat file prefab pada Assets dengan cara klik Assets -> Create -> Prefab


Berikutnya untuk menjadikan MyBall prefab bisa dilakukan dengan cara drag MyBall dari tab Hierarchy ke panel Assets.


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

Berikut ini contoh penggunaan kembali Prefab menjadi GameObject. Dengan cara drag and drop MyBall pada Prefab lalu letakkan dalam scene. Jika sudah mulai paham, hapus object bola di dalam scene.



Jika sudah, Buat script C# dan beri nama GandakanBola.cs lalu ubah script menjadi seperti berikut ini


Pembahasan Code

Baris 8, Variable TempatJatuh pada baris ke 8 akan berisi koordinat GameObject ‘muncul’. Jadi yang kita perlukan dari TitikJatuh hanyalah posisinya saja, bukan objeknya. Variabel Bola digunakan untuk GameObject yang akan diduplikasi.

Baris 15 - 18, Kunci dari materi ini, yaitu perintah untuk menduplikasi objek Bola di posisi TitikJatuh (position+rotation)

Baris 19, perintah untuk menghancurkan GameObject 5 detik setelah diciptakan. jika perintah ini tidak dibuat, maka game akan memakan banyak memori karena terus memproduksi GameObject.

Baris 26, Perintah untuk menjalankan Button "Buat Bola" dengan menggunakan tombol Spasi


Selanjutnya pasang script tersebut di GameObject mana saja yang Anda suka dengan cara drag and drop, lalu pastikan parameter TempatJatuh diisi dengan GameObject TitikJatuh, sedangkan parameter Bola diisi dengan prefab MyBall.



Jalankan Games dan klik tombol Buat Bola atau dengan menekan tombol Spasi 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.



Sekian Tutor kali ini, kurang lebihnya mohon maaf, see u next time !

No comments:

Post a Comment