|
1 | 1 | # Pengenalan Konsep
|
2 | 2 |
|
3 |
| -TBA |
| 3 | +Pada bagian ini kita akan membahas konsep konsep dasar dari Unity seperti tatap muka, _scene_, _game object_, dan hal lain yang menyangkut konsep pembuatan _game_ menggunakan Unity itu sendiri. Untuk informasi, detail dari penggunaan Unity sebenarnya sudah tersedia secara lengkap pada [Unity Manual](https://docs.unity3d.com/Manual/UsingTheEditor.html), pada modul ini kami akan menjelaskan secara ringkas disertai dengan informasi lanjut pada setiap bagian yang ada pada Unity Manual. |
| 4 | + |
| 5 | +## Tatap Muka |
| 6 | + |
| 7 | +Secara umum, terdapat enam tatap muka utama yang akan sering digunakan selama pembuatan _game_ menggunakan Unity. |
| 8 | +detail dari keenam tatap muka tersebut adalah sebagai berikut: |
| 9 | + |
| 10 | +1. **Project Window**. Merupakan tatap muka yang menampilkan _file_ dan _asset_ yang digunakan pada suatu _project_. |
| 11 | +2. **Scene View**. Merupakan tatap muka yang menunjukan tampilan keseluruhan _scene_. |
| 12 | +3. **Game View**. Merupakan tatap muka yang menunjukan tampilan ketika _game_ sedang berlangsung. |
| 13 | +4. **Hierarchy Window**. Merupakan tatap muka yang menampilkan daftar _object_ yang ada pada suatu _scene_. |
| 14 | +5. **Inspector Window**. Merupakan tatap muka yang menampilkan detail dari suatu _object_ pada suatu _scene_ maupun _file_ dan _asset_ pada suatu _project_. |
| 15 | +6. **Console Log**. Merupakan tatap muka yang menampilkan _log_ dari informasi maupun _error_ selama pengerjaan suatu _game_. |
| 16 | + |
| 17 | +> Informasi lebih lanjut mengenai tatap muka utama pada Unity bisa dilihat [disini](https://docs.unity3d.com/Manual/UsingTheEditor.html). |
| 18 | +
|
| 19 | +Sekadar informasi, selain keenam tatap muka utama tersebut juga ada tatap muka lain yang umumnya digunakan untuk keperluan yang lebih spesifik seperti Sprite Editor, Animation Editor, Audio Mixer, dan sebagainya. |
| 20 | + |
| 21 | +## Scene |
| 22 | + |
| 23 | +_Scene_ merupakan hal yang merujuk pada keseluruhan lingkungan pada _game_ yang bisa berupa _menu_, _world_, _gameplay_, maupun hal lain. |
| 24 | +Bagian utama dari _game_ yang dibuat menggunakan Unity terletak di _scene_-nya, dimana _scene_ sendiri akan berisi berbagai macam _object_ yang saling berinteraksi di dalamnya. |
| 25 | +Ketika _game_ berlangsung hanya ada satu _scene_ yang bisa aktif dan agar bisa menggunakan _scene_ yang lain maka diperlukan adanya perpindahan dari satu _scene_ ke _scene_ yang lain yang nantinya akan dibahas lebih lanjut pada bagian Navigasi dan Scene di modul ini. |
| 26 | + |
| 27 | +> Informasi lebih lanjut mengenai _scene_ pada Unity bisa dilihat [disini](https://docs.unity3d.com/Manual/CreatingScenes.html). |
| 28 | +
|
| 29 | +### Membuat Scene Baru |
| 30 | + |
| 31 | +- Pembuatan _scene_ baru pada Unity dilakukan melalui tatap muka Project Window. |
| 32 | + > Untuk percobaan kali ini, kita akan membuat _scene_ baru pada _folder_ `1-Pengenalan-Konsep/Scenes`. jadi pastikan Project Window sudah berada pada _folder_ tersebut. |
| 33 | +- Terdapat dua cara untuk menambahkan _scene_ baru, yakni dengan menekan tombol `+` pada bagian kiri atas lalu pilih `Scene` atau dengan klik kanan, lalu `Create`, dan pilih `Scene`. |
| 34 | +- Beri nama untuk _scene_ yang akan dibuat. |
| 35 | +- Buka _scene_ baru yang telah dibuat dengan cara _double_ klik. |
| 36 | + > Pada tahap ini Scene View, Game View, dan Hierarchy Window akan berganti sesuai dengan isi dari _scene_ yang dibuka. |
| 37 | +
|
| 38 | +## Game Object |
| 39 | + |
| 40 | +_Game object_ merupakan hal yang merujuk pada objek-objek seperti _player_, musuh, bangunan, partikel, _button_, dan sebagainya yang ada pada suatu _scene_ di _game_. |
| 41 | +Secara _default_, scene yang baru dibuat memiliki _game object_ `Main Camera` yang digunakan untuk menunjukan [_viewport_](https://en.wikipedia.org/wiki/Viewport) ketika _game_ sedang berlangsung. |
| 42 | + |
| 43 | +> Informasi lebih lanjut mengenai _game object_ pada Unity bisa dilihat [disini](https://docs.unity3d.com/Manual/GameObjects.html). |
| 44 | +
|
| 45 | +### Membuat Game Object Baru |
| 46 | + |
| 47 | +- Pembuatan _scene_ baru pada Unity dilakukan melalui tatap muka Hierarchy Window. |
| 48 | +- Sama seperti pembuatan _scene_ baru, terdapat dua cara untuk menambahkan _game object_ baru, yakni dengan menekan tombol `+` pada bagian kiri atas lalu pilih jenis _game object_ yang diinginkan atau dengan klik kanan, lalu `Create`, dan pilih jenis _game object_ yang diinginkan. |
| 49 | +- Sebagai contoh kita bisa memilih _game object_ dengan jenis `3D Object` -> `Sphere`. Maka akan muncul object lingkaran pada Scene View maupun Game View. |
| 50 | + > Walaupun yang dibuat adalah _game_ jenis 2D, Unity tetap memperlakukan _game_ tersebut sebagai game 3D dengan perspektif kamera 2D. Hal ini bisa dilihat dengan mematikan _toggle_ `2D` pada Scene View. |
| 51 | +
|
| 52 | +### Transformasi Game Object |
| 53 | + |
| 54 | +Setiap _game object_ memiliki komponen Transform yang digunakan untuk merepresentasikan transformasi (posisi, rotasi, dan skala) dari _game object_ pada suatu _scene_. |
| 55 | +Terdapat dua cara untuk mengubah transformasi suatu _game object_, yakni sebagai berikut: |
| 56 | + |
| 57 | +1. Mengubah langsung pada Scene View menggunakan _tools_ yang tersedia pada _toolbar_ (sebelah kiri atas), seperti Move Tool, Rotate Tool, Scale Tool, dan sebagainya. |
| 58 | +2. Mengubah nilai dari komponen Transform secara langsung pada Inspector Window. (sebelumnya klik _game object_ pada Scene View atau Hierarchy Window untuk menampilkan detail komponen dari _game object_) |
| 59 | + |
| 60 | +Sebagai contoh kita bisa mengubah transformasi dari _game object_ yang sebelumnya dibuat dengan mengubah nilai `Position` menjadi `(0, 0, 0)` dan `Scale` menjadi `(10, 10, 10)` pada Inspector Window. |
| 61 | +Sehingga akan didapatkan objek lingkaran besar yang berada tepat di tengah-tengah _scene_. |
| 62 | + |
| 63 | +## Component |
| 64 | + |
| 65 | +_Component_ merupakan bagian kecil yang menyusun suatu _game object_ pada _scene_. |
| 66 | +Sesuai dengan prinsip pada [_component based architecture_](https://en.wikipedia.org/wiki/Component-based_software_engineering), setiap hal kecil dari _program_ akan dibentuk menjadi komponen sehingga memudahkan _prototyping_ untuk objek baru tanpa membuat ulang keseluruhan isi dari objek tersebut. |
| 67 | +Sebagai contoh, Transform merupakan salah satu _component_ yang merepresentasikan transformasi dari _game object_ seperti yang dijelaskan sebelumnya, selain itu ada juga _component_ Camera yang digunakan untuk mengatur _view_ ketika _game_ berlangsung seperti ukuran _view_, jenis _projection_, dan sebagainya. |
| 68 | + |
| 69 | +> Informasi lebih lanjut mengenai _component_ pada Unity bisa dilihat [disini](https://docs.unity3d.com/Manual/Components.html). |
| 70 | +
|
| 71 | +### Membuat Component Baru dengan C# Script |
| 72 | + |
| 73 | +- Pembuatan _component_ baru dengan C# Script dilakukan melalui tatap muka Project Window. |
| 74 | + > Untuk percobaan kali ini, kita akan membuat _component_ C# Script pada _folder_ `1-Pengenalan-Konsep/Scripts`. jadi pastikan Project Window sudah berada pada _folder_ tersebut. |
| 75 | +- Terdapat dua cara untuk menambahkan _component_ C# Script, yakni dengan menekan tombol `+` pada bagian kiri atas lalu pilih `C# Script` atau dengan klik kanan, lalu `Create`, dan pilih `C# Script`. |
| 76 | +- Beri nama untuk _component_ yang akan dibuat. |
| 77 | + > Untuk percobaan kali ini, kita akan membuat _component_ dengan nama `Centerized` yang akan digunakan untuk membuat posisi _game object_ berada di tengah. |
| 78 | +- Buka C# Script yang telah dibuat dengan cara _double_ klik. |
| 79 | + > Pada tahap ini Unity akan membuka text editor, jika Visual Studio tidak terinstall, bisa menggunakan text editor apapun seperti Notepad. |
| 80 | +
|
| 81 | +### Memrogram Component Centerized |
| 82 | + |
| 83 | +Secara _default_, isi dari C# Script yang baru dibuat adalah sebagai berikut: |
| 84 | + |
| 85 | +```C# |
| 86 | +using System.Collections; |
| 87 | +using System.Collections.Generic; |
| 88 | +using UnityEngine; |
| 89 | + |
| 90 | +public class Centerized : MonoBehaviour |
| 91 | +{ |
| 92 | + // Start is called before the first frame update |
| 93 | + void Start() |
| 94 | + { |
| 95 | + |
| 96 | + } |
| 97 | + |
| 98 | + // Update is called once per frame |
| 99 | + void Update() |
| 100 | + { |
| 101 | + |
| 102 | + } |
| 103 | +} |
| 104 | +``` |
| 105 | + |
| 106 | +Inti dari _component_ yang dibuat menggunakan C# Script ada pada fungsi `Start()` dan `Update()`. |
| 107 | +Sesuai dengan penjelasan pada _comment_, fungsi `Start()` akan digunakan untuk melakukan eksekusi pertama di awal, sedangkan fungsi `Update()` akan digunakan untuk melakukan eksekusi yang dipanggil secara terus menerus di setiap _frame_. |
| 108 | +Pada percobaan kali ini, kita akan fokus pada fungsi `Start()` saja karena proses untuk membuat _game object_ berada di tengah cukup dilakukan sekali. |
| 109 | + |
| 110 | +Ubah isi dari fungsi `Start()` sebagai berikut: |
| 111 | + |
| 112 | +```C# |
| 113 | +void Start() |
| 114 | +{ |
| 115 | + transform.position = new Vector3(0f, 0f, 0f); |
| 116 | +} |
| 117 | +``` |
| 118 | + |
| 119 | +Penjelasan singkat dari baris _program_ diatas, _program_ akan mengubah nilai `position` dari _component_ `transform` menjadi `new Vector3(0f, 0f, 0f)`. |
| 120 | +`Vector3` sendiri merepresentasikan posisi 3D yang terdiri dari x, y, dan z, seperti pada nilai `Position` pada component `Transform` di Inspector Window. |
| 121 | +Sedangkan `0f` sendiri berarti nilai `0` dalam bentuk _float_ (pecahan). |
| 122 | + |
| 123 | +Setelah selesai, simpan baris _program_ tersebut. |
| 124 | + |
| 125 | +### Menggunakan Component Centerized |
| 126 | + |
| 127 | +- Ubah posisi objek lingkaran yang telah dibuat sebelumnya sehingga tidak berada di tengah. |
| 128 | +- Klik objek tersebut dan Pada Inspector Window, klik `Add Component`. |
| 129 | +- Cari _component_ yang bernama Centerized, dan kemudian tambahkan. |
| 130 | +- Setelah _component_ ditambahkan, klik tombol `Play` pada Toolbar. |
| 131 | + > Pada tahap ini, tampilan akan terfokuskan pada Game View, dan objek lingkaran akan secara otomatis terletak di tengah saat _game_ sedang berlangsung. |
| 132 | +
|
| 133 | +## Kesimpulan |
| 134 | + |
| 135 | +Dari bagian pertama ini kita telah mengenal konsep dasar pembuatan _game_ menggunakan Unity. Dari sini kita bisa membuat _game_ yang terdiri dari _scene_ dengan berbagai isi objek sesuai keinginan, serta mengatur setiap objek yang ada dengan _component_ yang bisa kita buat sendiri. |
| 136 | + |
| 137 | +bagian selanjutnya akan membahas gerakan dan animasi dari suatu _game object_, serta mengatur interaksi antara pemain dengan game yang akan dibuat. |
| 138 | + |
| 139 | +[Lanjut Bagian Kedua, Gerakan dan Animasi](../2-Gerakan-dan-Animasi/README.md) |
0 commit comments