Computer Engineering
Diponegoro University Semarang
JL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
MODUL V
UNITY
5.1 Tujuan
1. Praktikan dapat mengenal aplikasi Unity
2. Praktikan dapat memahami komponen-komponen dari Unity
3. Praktikan dapat mendesain game sederhana menggunakan Unity
4. Praktikan dapat memrogram mekanisme game sederhana menggunakan
bahasa C#
5. Praktikan dapat mengenal method dan function dalam pemrograman game
5.2 Alat dan Bahan
1. Laptop/PC
2. Unity
3. Text Editor
5.3 Dasar Teori
5.3.1 Unity
Gambar 5. 1 Unity
Unity merupakan sebuah game engine lintas platform yang dikembangkan
oleh Unity Technologies, yang pertama kali diumumkan dan dirilis pada Juni
2005 saat Apple Inc’s Worldwide Developers Conference sebagai game engine
eksklusif Mac OS X. Dalam perjalanannya, Unity telah secara bertahap
melebarkan layanannya kepada platform desktop, mobile, console, dan virtual
reality. Unity memiliki popularitas tertentu untuk pengembangan game mobile
iOS dan Android dan telah digunakan untuk game seperti Pokemon Go,
Monument Valley, Call of Duty: Mobile, Beat Saber, dan Cuphead. Unity
MULTIMEDIA LABORATORY
Computer Engineering
Diponegoro University Semarang
JL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
terkenal mudah dipahami dan digunakan oleh pengembang game pemula dan
populer dalam pengembangan game indie.
Ketika pertama kali membuka Unity dan setup project, akan muncul
halaman yang berisikan beberapa window terbuka. Ada lima window utama yang
akan menjadi fokus pengenalan kita dan yang akan paling sering kita gunakan
ketika mengembangkan game menggunakan Unity. Kelima window tersebut
adalah window Scene, Project, Hierarchy, Inspector, dan Game. Secara umum,
berikut adalah penjelasan dari masing-masing window :
a. Scene: Window yang digunakan untuk membangun game kita. Di dalamnya
kita bisa melihat dan mengatur object di dalam sebuah scene.
b. Project: Window yang berisikan seluruh aset yang digunakan untuk
membuat proyek game kita bisa terdiri dari file, script, texture, 3D model,
audio clip, dan lain-lain yang juga disimpan di dalam harddrive komputer
kita.
c. Hierarchy: Window yang berisi game object atau kumpulan game object
yang kita gunakan di dalam scene. Urutan game object bisa kita pindah
posisinya dan bisa kita grupkan menjadi parent and child.
d. Inspector: Window yang menampilkan konteks atau keterangan dari object
atau aset yang sedang kita pilih. Window ini bisa menampilkan informasi
property atau component dari sebuah game object ataupun aset.
e. Game: Window ini digunakan untuk melihat tampilan ketika permainan di
jalankan. Di bagian atas, terdapat tombol play, pause, dan set frame by
frame yang akan ditampilkan pada window Game.
f. Toolbar: Toolbar berisikan tombol yang membantu kita mengatur berbagai
komponen di dalam permainan.
(Sumber: https://www.dicoding.com/blog/mengenal-komponen-pada-user-interface-unity/)
Gambar 5. 2 GDLC
Game Development Life Cycle (GDLC) adalah tahapan-tahapan yang
dilakukan secara sistematis untuk membangun sebuah game (permainan digital)
yang umumnya terdiri dari 6 fase utama yaitu inisialisasi, pra-produksi, produksi,
pengujian, rilis versi beta dan rilis versi lengkap. Rangkaian GDLC terkadang
disederhanakan menjadi 3 fase utama yaitu idea/concept, Development, dan
Deployment.
Berikut merupakan 6 fase yang terdapat dalam GDLC:
1. Initiation
Initiation adalah titik inisiasi proyek game development. Awal dari game
development adalah memulai dari ide game. Initiation adalah sesi developer
berkumpul, brainstorming dan berdiskusi mengenai game seperti apa yang
akan dibuat. Proses pengembangan game yang betul – betul serius dimuali
dari proses iterative yang bernama Production Cycle.
2. Pre-Production
Pre-production adalah awal dari production cycle yang berurusan dengan
game design. Pre-production adalah tahap yang vital sebelum proses
production dimulai, karena pada tahap ini dilakukan perancangan game, dan
rencana produksi game. Tahap ini terdiri atas game design yakni
penyempurnaan konsep game + dokumentasinya ( Game Design Document
) dan prototyping yakni pembuatan prototype dari game ( bila game ada ).
3. Production
MULTIMEDIA LABORATORY
Computer Engineering
Diponegoro University Semarang
JL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
5.3.3 C# (C Sharp)
C# (dibaca: C Sharp) merupakan sebuah bahasa
pemrograman yang berorientasi objek yang dikembangkan oleh Microsoft sebagai
bagian dari inisiatif kerangka .NET Framework. Bahasa pemrograman ini dibuat
berbasiskan bahasa C++ yang telah dipengaruhi oleh aspek-aspek ataupun fitur
bahasa yang terdapat pada bahasa-bahasa pemrograman lainnya
seperti Java, Delphi, Visual Basic, dan lain-lain dengan beberapa penyederhanaan.
(Sumber: https://id.wikipedia.org/wiki/C_Sharp_(bahasa_pemrograman))
MULTIMEDIA LABORATORY
Computer Engineering
Diponegoro University Semarang
JL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
}
}
16. Pada tab hierarchy tambahkan game object baru dengan klik kanan > create
empty dan beri nama “StartMenuController”
Assets > Tiles > 2.5D Tiles dan pilih tiles autumn, winter, atau spring
berukuran 256x256. Untuk mengatur agar Object terlihat di depan layer,
gunakan sorting layer Foreground pada Inspector-nya.
19. Jika sudah, maka player akan dapat berdiri dengan tegap di atas tanah. Akan
tetapi, player masih belum dapat bergerak seperti bagaimana seharusnya.
Untuk menggerakkan player, buat script baru bernama “PlayerControl”
dengan cara Klik Kanan → Create → C# Script.
[SerializeField]
private LayerMask platformsLayerMask;
[SerializeField]
private float movementSpeed;
MULTIMEDIA LABORATORY
Computer Engineering
Diponegoro University Semarang
JL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
void FixedUpdate()
{
float horizontal = Input.GetAxis("Horizontal");
HandleMovement(horizontal);
Flip(horizontal);
}
theScale.x *= -1;
transform.localScale = theScale;
}
}
}
21. Setelah itu, tambahkan script PlayerControl dengan cara men-drag script
PlayerControl ke dalam Panel Inspector atau mengklik Add Component →
PlayerControl pada panel Inspector Player.
28. Aturlah agar Friction memiliki nilai friction 0 pada panel Inspector seperti
berikut.
30. Kini player sudah dapat bergerak dengan baik. Selanjutnya, kita akan
mengatur kamera agar kamera berjalan mengikuti player.
[SerializeField]
private LayerMask platformsLayerMask;
[SerializeField]
private float movementSpeed;
Vector2 bulletPos;
public float fireRate = 0.5f;
float nextFire = 0.0f;
void FixedUpdate()
{
float horizontal = Input.GetAxis("Horizontal");
HandleMovement(horizontal);
Flip(horizontal);
}
myRigidbody.velocity = new
Vector2(horizontal*movementSpeed, myRigidbody.velocity.y);
}
void fire()
{
bulletPos = transform.position;
if(facingRight)
{
bulletPos += new Vector2(+1f, -0.08f);
Instantiate(BullettoRight, bulletPos,
Quaternion.identity);
}
else
{
bulletPos += new Vector2(-1f, -0.08f);
Instantiate(BullettoLeft, bulletPos,
Quaternion.identity);
}
}
}
51. Selanjutnya akan muncul field baru pada Inspector Player bagian
PlayerControl script. Drag prefab Bullet To Left dan Bullet To Right sesuai
tempat masing-masing. Jika sudah tes dengan cara play preview game
kemudian tekan key “space” untuk menembakkannya.
using UnityEngine;
57. Buatlah sebuah object baru kosong dengan cara klik kanan > create empty,
beri nama “EnemySpawner”. Letakkan object di atas layar
59. Drag prefab Enemy ke dalam slot Enemy di dalamnya. Apabila sudah,
cobalah play preview game maka Enemy akan berjatuhan dari atas.
Gambar 5. 107 Menambahkan tag bullet pada prefab Bullet To Right dan Bullet To Left
62. Apabila sudah bukalah Script BulletScript dengan text editor kemudian
tambahkan kode berikut pada bagian bawah void Update().
void OnCollisionEnter2D(Collision2D col)
{
if(col.gameObject.CompareTag("enemigo"))
{
Destroy(col.gameObject);
Destroy(gameObject);
MULTIMEDIA LABORATORY
Computer Engineering
Diponegoro University Semarang
JL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
}
}
Cobalah preview game. Kini Player sudah dapat menembakkan Bullet ke
arah Enemy dengan efek Enemy akan menghilang jika terkena Bullet