jsdhfk
-
Upload
gunartaputra -
Category
Documents
-
view
216 -
download
2
description
Transcript of jsdhfk
TOOLS FOLDER, PREFAB CREATOR
OLEH :
KELOMPOK 160
I GEDE WIDYA RAHARJA 1215051121 / 6A
I PUTU AGUS WIDHIYASA 1215051159 / 6A
I MADE GUNARTA PUTRA 1215051173 / 6A
JURUSAN PENDDIKAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN KEJURUAN
UNIVERSITAS PENDIDIKAN GANESHA
SINGARAJA 2015
Pengenalan Penggunaaan Unity Tool untuk Pengembangan Game
Sebelum membuat game sebaiknya pengembang game (developer) hendaknya
memikirkan bagaimana game tersebut akan berjalan. Gambaran dari apa yang akan
dikerjakan harus didesain dengan diagram workflow (alur kerja). Pengembang juga
harus berfikir, bagaimana game tersebut berjalan, apakah bisa lebih baik, lebih cepat,
dan lebih efisien, dan pengembang memikirkan hal tersebut lagi dan lagi. Unity
menyediakan tools, komponen, dan GUI untuk melakukan pengembangan. Dalam
tutorial ini akan menjelaskan tentang Tool-tool yang akan digunakan dalam
pengembangan, dan diluar unity (contoh: 3Ds Max).
Hal yang akan dikerjakan adalah sebagai berikut:
1. Unity Folder Creator
2. Unity Prefab Creator
3. Unity Sprite Sheet
4. Unity Tile Creator
5. Unity Timer
6. 3D Max Batch Exporting
7. 3D Max Sprite Sheet Renderer
Pada tahap ini kita akan membuat tool untuk membuat folder, pada saat
membuat project unity langsung membuat folder yang bernama Project.
Pada tahap ini kita akan membuat folder dengan menggunakan script yang
bisa dijalankan dengan sekali klik. Sebelum kita akan membuat script hendaknya kita
berpikitr terlebih dahulu “Apa yang akan kita buat?, bagaimana manajemen folder?,
dll”. Untuk membuatnya klik Create pada Project.
Kemudian beri folder dengan nama Materials.
Selanjutnya buat folder kembali dengan nama Audio, Meshes, Shadows,dll.
Pembuatan folder tersebut adalah hal yang paling dasar dilakukan. Biasanya jika
folder tersebut dihapus akan menghasilkan error, maka dari itu kita akan membuat
folder dengan cara yang berbeda. Yang akan dilakukan adalah membuat editor script,
yang dimana kita mengklik tombol akan ototmatis menghasilkan folder dan folder
langsung berisikan nama. Sebelum kita membuat folder dengan script terlebih dahulu
kita hapus folder yang sudah kita buat tadi.
Untuk pembuatan folder Unity sudah menyediakn API pada Unity Script
References. Sebelumnya buat folder dengan nama Editor, folder ini digunakan untuk
menruh script refrences yang di gunakan oleh unity.
Pada view objek buat sebuah script dengan nama MakeProjectFolder. Untuk
script tersebut kita pindahkan kedalam folder Editor. Kemudian kita bukak script
tersebut dengan mengklik dua kali.
Berikut merupakan tampilan dari script MakeProjectFolder.
Untuk isi dari script MakeProjectFolder terlebh dahulu kita akan menghapus
isi dari script tersebut karena kita akan membuat script baru.
Setelah kosong kita terlebih dahulu membuat komentar-komentar agar kita
bisa ingat tujuan dan fungsi dari script yang nanti kita akan di buat.
Selanjutnya kita akan membuat script yang berfungsi untuk menambahkan
menu bar.
Sebelum menambahkan menu terlebih dahulu kita mencoba membuat menu
item dengan mengetikan script sebagai berikut:
Kemudian save script tersebut dan coba lihat pada menu unity, pada menu unity akan
bertambah dengan nama menu GameObjects.
Karena kita mau memindahkan menu yang baru pada GameObject maka kita
edit script MakeObjectFolder dengan menghapus huruf “s ” pada script di bagian
MakeObjects/MakeFolders menjadi Makeobject/MakeFolders. Kemudian save
kembai dan lihat hasilnya maka pada bagian menu GameObjek akan bertambah menu
baru yaitu MakeFolders.
Kemudian klik menu yang telah tadi dibuat maka akan muncul hasil “Test” seperti
pada gambar di bawah
Karena script uji coba menu tersebut berhasil slanjutnya kita akan membuat menu
dengan nama Project Tools carananya kita merubah di bagian script “GamesObjects”
menjadi Project Tools. Untuk lebh jelasnya lihat gambar berikut:
Dan untuk hasil pada tampilan unity maka dapat di lihat pada gambar di bawah
Sekarang kita akan membuat dua folder baru yaitu Audio dan Materials maka untuk
itu ketikan script seperti gambar di bawah ini:
Setelah itu save script tersebut dan coba lihat di tampilan unity akan terdapat dua
tambahan folder yaitu Audio dan Materials. Berikut gambar dari tampilan Unitynya.
Karena kita akan membuat beberapa folder, dalam skrip kita akan menambahkan
beberapa scipt untuk menambahkan folder. Tambahkan script sehingga menjadi
seperti dibawah ini:
1. Langkah selanjutnya dalam pembuatan MakeProjectFolder.js adalah memberi
inisalisasi komentar pada source code MakeProjectFolder.js untuk mempermudah
dalam mengenali script yang dibuat ,
o Pertama memberi komen pada static function MakeFolder(). Komentar yang
diberikan adalah sebagai berikut : “//menuItem read the first start function”
o Kedua memberi komentar pada var ProjectPath : String =
Application.dataPath + “/”; Komentar yang diberikan sebagai berikut :
“//store the path for the folder”
o Terakhir adalah memberi komen pada baris source code membuat folder,
komentar yang diberikan sebagai berikut : “//creating the folder”.
Seperti pada gambar berikut :
2. Selanjutnya menambah baris code AssetDatabase.Refresh(); pada file
MakeProjectFolder.js.
Untuk menambahkan AssetDatabase.Refresh() bias di copy paste langsung dari
unity Scripting Reference, AssetDatabase.Refresh(); dapat ditemukan dengan
memasukan kata kunci refresh pada Scripting API Search Result.
Seperti gambar berikut :
Copy paste AssetDatabase.Refresh, seperti gambar berikut :
Sehingga keseluruhan script pada MakeProjectFolder.js seperti berikut :
Script AssetDatabase.Refresh(); berfungsi untuk merefresh Asset agar dapat
langsung menampilkan folder yang dibuat sebelumnya.
Setelah pembuatan script, selanjutnya adalah menampilkan folder yang telah
dibuat tadi di Project unity untuk mengetahui apakah script dapat dijalankan atau
tidak. Caranya dengan klik Project Tools, kemudian klik Make Folder, jika folder
tampil pada Project unity.
Seperti pada gambar :
Berarti script yang tadi dibuat sudah dapat dijalankan.
3. Membuat prefab di unity, fungsi prefab bisa dibilang sebagai kontainer atau
sebagai salah satu cara untuk membuat group asset dan dijadikan template
untuk digunakan berkali-kali didalam project. Cara untuk membuat prefab
yaitu :
o Pertama menambah basic object, dengan cara klik Create pada bagian
Hierarchy, pilih 3D Object, pilih Cube, seperti gambar :
o Kedua adalah membuat prefab dengan cara klik Create pada Project
kemudian pilih Prefab, seperti gambar :
o Kemudian rename Prefab menjadi Cube dan Drag Object Cube ke
dalam Prefab, seperti gambar berikut :
Kemudian Object Cube tadi aka nada dalam Prefab yang sudah di
rename menjadi Cube tadi. Seperti gambar berikut :
Cube ada di dalam Prefab seperti yang ditunjukan pada gambar di
bagian kanan.
Tadi adalah cara biasa membuat Prefab, berikut adalah cara membuat prefab dengan
menggunakan menu.
o Pertama buat sebuah Folder dan beri nama Editor, dengan cara klik Create
dan pilih Folder, seperti gambar berikut :
o Selanjutnya Rename Folder tersebut menjadi Editor, seperti gambar berikut
:
o Kemudian Tambahkan Java Script pada Folder Editor dengan cara, klik
kanan Folder Editor, kemudian pilih Create dan Pilih Javascript, Seperti
gambar berikut :
o Selanjutnya rename Javascript tadi menjadi Make Prefab, seperti gambar,
o Doble klik MakePrefab.js, maka akan tampil text editor yang digunakan,
disini menggunakan notepad ++, seperti pada gambar :
o Setelah text editor terbuka seperti gambar diatas, maka script dapat mulai
dibuat.
Sebelum membuat script, sebaiknya membuat komen terlibih dahulu untuk
mempermudah dalam mengingat fungsi dari scrip yang akan dibuat.
Seperti gambar berikut:
o Selanjutnya adalah membuat script untuk membuat menu prefab, buat lah
seperti berikut :
o Terakhir untuk melihat apakah script dapat berjalan, klik ProjectTools
Kemudian klik Make Prefab. Seperti pada gambar :
Jika pada bagian Console tampil pesan seperti gambar berikut, artinya
script berhasil dijalankan.
4. Membuat selection yang digunakan untuk mengakses object yang ada pada editor.
Pertama tambahkan object dengan klik Create pada bagian Hierarchy,
kemudian pilih 3D Object dan pilih Cube (object bisa diganti dengan
object lain).
Selanjutnya adalah menambhakan script selection pada Javascript
MakePrefab yang telah dibuat sebelumnya.
Seperti gambar berikut :
Fungsi script diatas adalah menampilkan object yang telah dipilih sebelumnya,
untuk mengetahui script yang dibuat dapat berjalan atau tidak, pada bagian
Hierarchy klik object yang telah dibuat tadi, yaitu Cube kemudian klik Object
Tools dan klik Make Prefab, seperti gambar
Jika script berhasil dijalankan maka pada bagian console akan tampil seperti
berikut :
untuk memanggil semua object yang di pilih, maka perlu ditambahkan script
berikut:
Untuk mengetahui apakah script yang dibuat dapat berjalan, tambahkan beberapa
object lagi,
Seperti gambar :
Kemudian pilih semua object yang sudah ditambhakan tadi, selanjutnya klik
Object Tools dan klik Make Prefab, jika pada consol tampil nama – nama object
yang dibuat tadi maka script dapat berjalan, seperti gambar berikut :
Setelah itu kita akan mengambil informasi dari objek yang dipilih. Dalam Unity
Script Reference telah disediakan referensi skrip lengkap bagaimana caranya
membuat prefab.
Kemudian yang akan dilakukan adalah membuat Prefab, menggunakan fungsi
CreateEmptyPrefab, CreateEmptyPrefab berisikan sebuah parameter String yang
harus diisikan dimana lokasi prefab yang akan dibuat. Kita buat variabel untuk
menampung sebuah nama dari Objek yang dipilih dan membuat sebuah String
variabel yang digunakan untuk menampung lokasi file yang akan dibuat. Untuk
melakukan hal tersbut dalam skrip MakePrefab.js tambahkan skrip sebagai berikut:
// membuat prefab dari sekli klik
@MenuItem("Project Tools / Make Prefab")
static function CreatePrefab() {
var selectedObjects : GameObject[] = Selection.gameObjects;
for (var go : GameObject in selectedObjects) {
var name : String = go.name;
var locationPath : String = "Assets/" + name + ".prefab";
print(locationPath);
}
}
Setelah dibuat, kemudian coba klik menu Project Tools / Make Prefab, maka
console akan menampilkan hasil seperti berikut:
Berarti kita telah berhasil membuat nama Path untuk dimunculkan, kemudian
dilanjutkan dengan membuat prefab.
Lalu buat static function untuk membuat sebuah fungsi yang berguna untuk membuat
prefab dalam folder Assets. Tambahkan skrip didalam file MakePrefab.js seperti
dibawah ini (tambahkan yang bergaris bawah):
// membuat prefab dari sekli klik
@MenuItem("Project Tools / Make Prefab")
static function CreatePrefab() {
var selectedObjects : GameObject[] =
Selection.gameObjects;
for (var go : GameObject in selectedObjects) {
var name : String = go.name;
var locationPath : String = "Assets/" + name +
".prefab";
print(locationPath);
createNew(go, locationPath);
}
}
static function createNew(selectedObjects : Object,
localPath : String) {
var prefab : Object = PrefabUtility.CreateEmptyPrefab
(localPath);
PrefabUtility.ReplacePrefab(selectedObjects, prefab);
}
Function createNew digunakan untuk membuat sebuah prefab baru dan
menambahkan prefab dengan object yang dipilih.
Untuk me-refresh folder assets secara otomatis, kita bisa gunakan fungsi
AssetsDatabase.Refresh, tambahkan skrip tersebut kedalam fungsi
createNew().
Setelah kita membuat prefab, terkadang kita lupa bahwa prefab tersebut sudah ada
atau tidak, dan tanpa sengaja kita menimpa (replace) prefab yang sudah kita buat
sebelumnya. Maka kita akan membuat skrip kondisional (if) yang bertujuan untuk
memastikan apakah prefab sudah ada atau tidak, dan jika ada maka akan ditimpa atau
tidak.
Unity menyediakan fungsi LoadAssetsAtPath() yang digunakan untuk mengetahui
apakah objek tersbut sudah ada atau tidak:
Ubah skrip MakePrefab.js agar menjadi seperti berikut:
// membuat prefab dari sekli klik
@MenuItem("Project Tools / Make Prefab")
static function CreatePrefab() {
var selectedObjects : GameObject[] =
Selection.gameObjects;
for (var go : GameObject in selectedObjects) {
var name : String = go.name;
var locationPath : String = "Assets/" + name +
".prefab";
print(locationPath);
if (AssetDatabase.LoadAssestAtPath(locationPath, go))
{
print("Jangan dibuat");
} else {
createNew(go, locationPath);
}
}
}
static function createNew(selectedObjects : Object,
localPath : String) {
var prefab : Object = EditorUtility.CreateEmptyPrefab
(localPath);
EditorUtility.ReplacePrefab(selectedObject, prefab);
}
Setelah dibuat save skrip diatas dan coba untuk membuat sebuah objek, misalkan
Sphere dengan cara pada Hireachy pilih Create > 3D Object > Sphere.
Setelah game objek dibuat coba kita jalankan skrip yang telah dibuat tadi. Maka
pertama kali prefab objek Sphere tersbut dibuat dan menampilkan pesan seperti
berikut:
Coba untuk menjalankan skrip tersebut dengan pilihan objek yang sama. Maka pada
bagian Console akan muncul pesan seperti berikut:
Maka dalam pesan tersbut mengatakan bahwa prefab jangan dibuat, atau prefab sudah
ada.
Kemudian kita akan membuat dialog yang berisi kondisi apakah user ingin mereplace
prefab yang sudah dibuat?
Unity telah menyertakan fungsi EditorUtility.DisplayDialog(), untuk
menambahkannya kita dapat menambahkan skrip dengan syntax sebagai berikut:
// membuat prefab dari sekli klik
@MenuItem("Project Tools / Make Prefab")
static function CreatePrefab() {
var selectedObjects : GameObject[] = Selection.gameObjects
;
for (var go : GameObject in selectedObjects) {
var name : String = go.name;
var locationPath : String = "Assets/" + name +
".prefab";
print(locationPath);
if (AssetDatabase.LoadAssetAtPath(locationPath, GameOb
ject)) {
if (EditorUtility.DisplayDialog("Peringatan",
"Apakah anda ingin menimpa prefab yang telah dibuat?", "Ya", "
Tidak")) {
createNew(go, locationPath);
}
} else {
createNew(go, locationPath);
}
}
}
static function createNew(selectedObjects : Object,
localPath : String) {
var prefab : Object = PrefabUtility.CreateEmptyPrefab(loca
lPath);
PrefabUtility.ReplacePrefab(selectedObjects, prefab);
}
Pada bagian if (EditorUtility.DisplayDialog("Peringatan", "Apakah anda
ingin menimpa prefab yang telah dibuat?", "Ya", "Tidak")), kita akan
menampilkan sebuah dialog untuk menanyakan kepada pengguna apakah ingin
menimpla prebab atau tidak, jika user menekan “ya”, maka Unity akan mengeksekusi
fungsi createNew() yang telah dibuat tadi, jika user memilih “tidak” maka Unity
keluar dari if statement.
Jika dijalankan dan objet masih ada maka unity akan menampilkan DialogBox
sebagai berikut: