Skip to content

Commit cb4433b

Browse files
committed
add order of execution in pengenalan konsep
1 parent 788a10c commit cb4433b

File tree

4 files changed

+168
-7
lines changed

4 files changed

+168
-7
lines changed
38.1 KB
Loading

Assets/1-Pengenalan-Konsep/Images/rotating-component.png.meta

Lines changed: 92 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/1-Pengenalan-Konsep/README.md

Lines changed: 72 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,17 @@ Ketika _game_ berlangsung hanya ada satu _scene_ yang bisa aktif dan agar bisa m
3333
### Membuat Scene Baru
3434

3535
- Pembuatan _scene_ baru pada Unity dilakukan melalui tatap muka Project Window.
36-
> Untuk percobaan kali ini, kita akan membuat _scene_ baru pada _folder_ `1-Pengenalan-Konsep/Scenes`. jadi pastikan **Project Window** sudah berada pada _folder_ tersebut.
36+
37+
> Secara umum, _asset_ yang berbentuk _scene_ diletakkan pada folder bernama `Scenes`.
38+
> jadi pastikan **Project Window** sudah berada pada _folder_ tersebut.
39+
3740
- 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`.
3841

3942
![Membuat _scene_ baru dengan klik kanan](./Images/create-scene.png)
4043

4144
- Beri nama untuk _scene_ yang akan dibuat.
4245
- Buka _scene_ baru yang telah dibuat dengan cara _double_ klik.
46+
4347
> Pada tahap ini **Scene View**, **Game View**, dan **Hierarchy Window** akan berganti sesuai dengan isi dari _scene_ yang dibuka.
4448
4549
## Game Object
@@ -67,6 +71,8 @@ Terdapat dua cara untuk mengubah transformasi suatu _game object_, yakni sebagai
6771
1. Mengubah langsung pada **Scene View** menggunakan _tools_ yang tersedia pada _toolbar_ (sebelah kiri atas), seperti `Move Tool`, `Rotate Tool`, `Scale Tool`, dan lain sebagainya.
6872
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_)
6973

74+
> Informasi lebih lanjut mengenai Transformasi _game object_ pada Unity bisa dilihat [disini](https://docs.unity3d.com/Manual/Transforms.html).
75+
7076
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**.
7177
Hasilnya akan didapatkan objek lingkaran besar yang berada tepat di tengah-tengah _scene_.
7278

@@ -83,14 +89,20 @@ Sebagai contoh, `Transform` merupakan salah satu _component_ yang merepresentasi
8389
### Membuat Component Baru dengan C# Script
8490

8591
- Pembuatan _component_ baru dengan **C#** _script_ dilakukan melalui tatap muka **Project Window**.
86-
> Untuk percobaan kali ini, kita akan membuat _component_ dengan **C#** _script_ pada _folder_ `1-Pengenalan-Konsep/Scripts`. jadi pastikan **Project Window** sudah berada pada _folder_ tersebut.
92+
93+
> Secara umum, _asset_ yang berbentuk **C#** _script_ diletakkan pada folder bernama `Scripts`.
94+
> jadi pastikan **Project Window** sudah berada pada _folder_ tersebut.
95+
8796
- Terdapat dua cara untuk menambahkan **C#** _script_, yakni dengan menekan tombol `+` pada bagian kiri atas lalu pilih `C# Script` atau dengan klik kanan, lalu `Create`, dan pilih `C# Script`.
8897

8998
![Membuat **C#** _script_ baru dengan klik kanan](./Images/create-script.png)
9099

91100
- Beri nama untuk _component_ yang akan dibuat.
101+
92102
> Untuk percobaan kali ini, kita akan membuat _component_ dengan nama `Centerized` yang akan digunakan untuk membuat posisi _game object_ berada di tengah.
103+
93104
- Buka **C#** _script_ yang telah dibuat dengan cara _double_ klik.
105+
94106
> Pada tahap ini **Unity** akan membuka _text editor_ yang menampilkan **C#** _script_ dari component `Centerized`.
95107
> Jika **Visual Studio** tidak terinstall, maka bisa menggunakan _text editor_ apapun seperti **Notepad**.
96108
@@ -136,6 +148,9 @@ Penjelasan singkat dari baris _program_ diatas, _program_ akan mengubah nilai `p
136148
`Vector3` sendiri merepresentasikan posisi _3D_ yang terdiri dari `x`, `y`, dan `z`, seperti pada nilai `Position` pada component `Transform` di Inspector Window.
137149
Sedangkan `0f` sendiri berarti nilai `0` dalam bentuk _float_ (pecahan).
138150

151+
> Sebagai catatan, `transform` merupakan [_member variable_](https://en.wikipedia.org/wiki/Member_variable) dari _class_ `MonoBehaviour` yang merupakan [_parent class_](https://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming)) dari _class_ `Centerized`.
152+
> Informasi lebih lanjut mengenai _class_ `MonoBehavior` bisa dilihat [disini](https://docs.unity3d.com/ScriptReference/MonoBehaviour.html).
153+
139154
Setelah selesai, simpan baris _program_ tersebut.
140155

141156
### Menggunakan Component Centerized
@@ -146,13 +161,65 @@ Setelah selesai, simpan baris _program_ tersebut.
146161

147162
![Menambahkan _component_ `Centerized` pada _game object_](./Images/add-centerized-component.png)
148163

149-
- Setelah _component_ ditambahkan, klik tombol `Play` pada Toolbar.
164+
- Setelah _component_ ditambahkan, klik tombol `Play` pada **Toolbar** untuk melihat hasilnya.
165+
150166
> Pada tahap ini, tampilan akan terfokuskan pada **Game View**, dan objek lingkaran yang sebelumnya tidak berada di tengah akan secara otomatis terletak di tengah saat _game_ sedang berlangsung.
151167
168+
> Sebagai tambahan, anda bisa membuat beberapa objek lain dengan posisi acak dan menambahkan _component_ `Centerized`.
169+
> Hasilnya, setelah di-_run_, keseluruhan objek yang memiliki _component_ `Centerized` akan secara otomatis terletak di tengah saat _game_ sedang berlangsung.
170+
171+
## Order of Execution
172+
173+
_Order of execution_ merupakan istilah yang merujuk pada urutan dari pemanggilan _event_ pada sistem **Unity**.
174+
Salah satu dari _event_ tersebut nantinya akan memanggil fungsi yang ada pada _component_ seperti `Start()` dan `Update()` yang sudah dijelaskan sebelumnya.
175+
Pada bagian ini kita akan membahas lebih lanjut mengenai bagaimana pengaruh _order of execution_ ini terhadap _looping_ dari suatu game, sehingga alur dari sistem bisa bekerja sesuai dengan yang diinginkan.
176+
177+
> Informasi lebih lanjut mengenai _order of execution_ pada **Unity** bisa dilihat [disini](https://docs.unity3d.com/Manual/ExecutionOrder.html).
178+
179+
### Membuat Component Rotating
180+
181+
Pada percobaan kali ini, kita akan membuat _component_ baru yang akan digunakan untuk membuat objek selalu berputar selama game sedang berlangsung
182+
Untuk itu, pertama, buat **C#** _script_ baru dan beri nama `Rotating`.
183+
184+
Buka **C#** _script_ tersebut dan ubah isi dari fungsi `Update()` sebagai berikut:
185+
```c#
186+
void Update()
187+
{
188+
Vector3 newEulerAngles = transform.eulerAngles;
189+
newEulerAngles.z += 0.5f;
190+
191+
transform.eulerAngles = newEulerAngles;
192+
}
193+
```
194+
195+
Penjelasan singkat dari baris _program_ diatas, _program_ akan menyimpan nilai `eulerAngles` dari _component_ `transform` ke variabel sementara yang diberi nama `newEulerAngles`.
196+
Setelah itu, nilai `z` dari `newEulerAngles` sebelumnya akan ditambahkan sebesar `0.5` _float_.
197+
Dan Terakhir, nilai `newEulerAngles` yang sudah diubah tadi akan di-_set_ ke nilai `eulerAngles` dari _component_ `transform`.
198+
199+
> Sebagai catatan, `transform` merupakan _member variable_ yang memiliki [tipe data](https://en.wikipedia.org/wiki/Data_type) _class_ `Transform`.
200+
> Dalam sisi pemrograman, _class_ `Transform` merupakan _class_ yang merepresentasikan isi dan fungsi dari _component_ `Transform` yang ada pada _game object_.
201+
> Informasi lebih lanjut mengenai _class_ `Transform` bisa dilihat [disini](https://docs.unity3d.com/ScriptReference/Transform.html).
202+
203+
Setelah selesai, simpan baris _program_ tersebut.
204+
205+
### Mencoba Component Rotating
206+
207+
- Buat _game object_ baru dengan jenis `3D Object` -> `Cube` dan tambahkan _component_ `Rotating`.
208+
> Anda boleh menghapus _game object_ lain yang sudah tidak digunakan.
209+
- Klik tombol `Play` untuk melihat hasilnya.
210+
211+
![Mencoba _component_ `Rotating` pada _game object_](./Images/rotating-component.png)
212+
213+
> Pada tahap ini objek persegi yang baru saja dibuat akan berputar secara terus menerus.
214+
> Hal ini bisa terjadi karena pada fungsi `Update()`, nilai dari [_euler angles_](https://en.wikipedia.org/wiki/Euler_angles) (atau `Rotation` pada **Inspector Window**) akan berubah secara terus menerus di setiap _frame_ sehingga menimbulkan kesan seolah-olah sedang berputar.
215+
216+
> Sebagai tambahan, anda bisa juga menambahkan _component_ `Centerized`.
217+
> Sehingga selain berputar terus menerus, ketika di awal, objek juga akan secara otomatis terletak di tengah.
218+
152219
## Kesimpulan
153220

154221
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.
155222

156-
Pada bagian selanjutnya kita akan membahas lebih lanjut mengenai manipulasi objek menggunakan _component_ yang dibuat sendiri, terutama soal mengatur gerakan dan animasi dari _game object_ tersebut, serta mengatur interaksi antara pemain dengan _game_ yang akan dibuat.
223+
Pada bagian selanjutnya kita akan membahas lebih lanjut mengenai manipulasi objek menggunakan _component_ yang dibuat sendiri, terutama soal mengatur gerakan dari _game object_ serta mengatur interaksi antara pemain dengan _game_ yang akan dibuat.
157224

158-
[Lanjut Bagian Kedua, Gerakan dan Animasi](../2-Gerakan-dan-Animasi/README.md)
225+
[Lanjut Bagian Kedua, Input dan Gerakan](../2-Gerakan-dan-Animasi/README.md)

Assets/2-Gerakan-dan-Animasi/README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
# Gerakan dan Animasi
1+
# Input dan Gerakan
22

3-
Bab ini akan menjelaskan beberapa hal berikut:
3+
Pada bagian kedua dari modul ini, kita akan membahas mengenai interaksi pemain dengan game melalui _input_ yang diberikan oleh pemain.
4+
Serta bagaimana sistem akan merespon _input_ dari pemain tersebut, yang mana salah satunya adalah dengan menggerakkan objek yang dikendalikan oleh pemain.
5+
Selain soal _input_ dan gerakan, pada bagian ini kita juga akan menyinggung beberapa hal lain yang akan membantu pengembangan game ini dari sisi _input_ dan gerakan seperti soal _debug log_ dan _prefab_.
46

57
1. Menggerakkan Objek
68
2. Mengatur Animasi _Sprite_

0 commit comments

Comments
 (0)