jsdhfk

37
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

description

nbdsfkjsdak

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:

Maka setelah diekseskusi (mengklik menu yang telah dibuat tadi) maka folder akan

otomatis dibuat:

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: