Analogi GameObject dalam Unity3D

GameObject adalah semua objek yang tampak di dalam sebuah game. Bisa dianalogikan jika sebuah game adalah sebuah meja makan yang di atasnya tersaji  hidangan berbagai jenis makanan dan minuman dalam piring dan gelas yang telah tersusun rapi.

GameObject bisa terdiri dari: gambar latar belakang (background), animasi karakter, kamera, efek gambar, cahaya, suara dalam game, dll.

Meja makan bisa terdiri dari: meja, kursi, piring, sajian makanan minuman, lilin, lampu dll.

Namun demikian, setiap GameObject tidak dapat berdiri sendiri. GameObject adalah suatu kontainer atau wadah yang terdiri dari kumpulan kumpulan komponen yang memiliki fungsi berbeda beda.

Anggap saja salah satu GameObject adalah “Ayam Goreng” di atas meja makan, maka “Ayam Goreng” tersebut sebenarnya terbentuk dari beberapa komponen sebagai berikut:
1. Ayam mentah
2. Resep membuat ayam goreng
3. Minyak goreng
4. Bumbu bumbu, dll

Semua komponen di atas dimasukan ke dalam wajan penggorengan dan diolah sebagai Ayam Goreng.

Sebuah GameObject dapat terbentuk dari beberapa komponen yang terdiri dari:
1. Transform
2. Script
3. Effect
4. Audio, dll

Setiap komponen memiliki fungsi dan nilai serta properti yang berbeda. Suatu GameObject dapat memiliki kombinasi komponen sesuai dengan yang diinginkan; misalnya: suatu GameObject karakter dalam game memiliki komponen audio, animasi dan script tertentu pada saat bergerak, diam atau menghilang.

Properti dalam suatu komponen memiliki Nilai dan Referensi.

Contoh: suatu karakter memiliki 2 komponen audio, 1 untuk berteriak dan 1 untuk bergerak. Maka dalam script, audio untuk berteriak dan bergerak harus direfensikan kepada file audio yang sesuai
1. Berteriak > karakter_teriak.mp3
2. Bergerak > karakter_bergerak.mp3

Jika tidak ada referensi pada saat karakter menggunakan komponen audio, maka akan timbul eror. Perhatikan dalam penamaan referensi harus sesuai dengan file asli dalam komputer atau kita akan mendapatkan hasil yang tidak diinginkan.

Menambahkan file audio ke dalam properti suatu komponen dalam Unity semudah drag and drop file dari komputer ke dalam komponen tersebut.

Dalam mode Play (di mana simulasi game sedang berjalan), kita dapat mengubah nilai dan properti suatu komponen sehingga kita dapat melihat secara langsung efek perubahan yang kita buat di dalam game. Tidak perlu khawatir nilai dan properti awal akan hilang karena jika tombol Play kembali ditekan, maka nilai dan properti awal yang telah diubah akan kembali ke awal.

Urutan komponen dalam suatu GameObject tidak terlalu berpengaruh pada suatu Game kecuali beberapa komponen tertentu seperti Image Effects.

Unity menggunakan sistem Parenting dalam GameObject; artinya, kita dapat menempatkan suatu GameObject menjadi ‘anak’ atau ‘orangtua’ dalam GameObject yang lain. Sang ‘anak’ akan mewarisi sistem gerakan dan rotasi dari sang ‘orangtua’. Sistem Parenting berguna jika kita ingin membuat suatu karakter musuh yang memiliki fungsi, gerakan dan rotasi yang sama secara umum. Contoh: Bos Orc > anak buah bos Orc memiliki fungsi yang sama. Perbedaan hanya pada warna karakter, HP, suara, dll. Fungsi ini berguna jika kita ingin membuat karakter karakter tertentu dalam jumlah banyak dan memiliki fungsi yang secara umum sama, cukup menempatkan suatu GameObject di bawah GameObject yang lain.

Teknik lain dalam pembuatan suatu GameObject yang sama adalah Prefabs. Prefabs adalah suatu koleksi GameObject dan komponen komponen yang dapat dipakai berulang kali dalam suatu scene. Beberapa objek yang sama dapat dibuat dari sebuah Prefabs; teknik ini disebut Instancing.

Contoh membuat suatu pohon dalam scene. Sebuah Prefabs pohon dapat ditempatkan di dalam game, kemudian Prefabs pohon tersebut diperbanyak di dalam suatu game. Dan jika ada perubahan di dalam Prefabs pohon tersebut, maka pohon pohon yang lain akan ikut berubah secara otomatis.

Properti dalam suatu komponen dapat berupa Prefabs atau GameObject yang lain selama tipe nya sesuai.

Kombinasi Prefabs dan Parenting akan menyingkat banyak waktu pada saat ada perubahan aset karena kita hanya perlu mengubah aset utama satu kali dan objek yang lain akan ikut berubah selama di dalam struktur Parenting dan Prefabs yang sama. Kita bahkan dapat mengubah clone (tiruan dari Prefabs) dan semua clone dan Prefabs utama akan ikut terupdate secara otomatis!

Mengubah Aset

Mengubah atau memodifikasi aset dalam Unity sangat mudah; cukup double-click aset yang ingin diubah di dalam Project Asset Unity, maka program yang terasosiasi dengan aset tersebut akan terbuka. Contoh: double-click aset jagoanku.png di dalam Unity dan program Photosop akan terbuka beserta file tersebut, kemudian edit, save dan exit. Maka semua aset jagoanku.png dan Prefabs serta Parenting yang berkaitan dengan jagoanku.png akan ter-update secara otomatis.

Catatan: disarankan untuk tidak mengubah aset yang ada di dalam Unity, di luar dari Unity. Ini karena semua aset yang sudah ada di dalam Unity memiliki meta data tertentu yang berkaitan dengan aplikasi yang sedang dibuat; mengubahnya di luar Unity akan membuat Unity kehilangan meta data tersebut dan referensi akan aset tersebut akan hilang dan dapat menyebabkan eror.

Contoh: membuka file jagoanku.png langsung di dalam folder komputer atau di dalam Photosop tanpa melalui Unity akan menghilangkan metadata dan referensi Unity karena Photosop akan membuat file baru.

Tidak ada komentar:

Posting Komentar