![]() |
Ilustrasi Unity |
Unity adalah salah satu game engine paling populer di dunia, digunakan oleh developer indie hingga perusahaan besar untuk membuat berbagai jenis game, dari game mobile hingga game AAA. Bagi pemula, Unity menawarkan lingkungan yang ramah dengan antarmuka visual yang intuitif dan bahasa pemrograman C# yang cukup mudah dipelajari.
Dalam panduan ini, kita akan membahas cara membuat game sederhana menggunakan Unity, mulai dari instalasi hingga membangun mekanisme dasar game. Jika Anda baru memulai dan ingin belajar bagaimana membuat game sendiri, panduan ini akan menjadi langkah awal yang tepat.
1. Menginstal dan Memahami Antarmuka Unity
Sebelum mulai membuat game, Anda harus menginstal Unity dan memahami bagaimana antarmukanya bekerja.
a. Menginstal Unity dan Persiapan Awal
- Unduh Unity Hub dari situs resmi Unity (https://unity.com). Unity Hub adalah aplikasi manajemen proyek yang memudahkan instalasi dan pembaruan versi Unity.
- Pilih versi Unity yang sesuai – untuk pemula, disarankan menggunakan versi LTS (Long-Term Support) yang lebih stabil.
- Instal Unity dengan Modul Tambahan, seperti "Universal Render Pipeline" dan "2D Game Kit" jika Anda ingin membuat game 2D.
- Instal Visual Studio (atau IDE lain seperti JetBrains Rider) untuk menulis skrip C#.
b. Mengenal Antarmuka Unity
Setelah menginstal, buka Unity dan buat proyek baru. Anda akan melihat beberapa panel utama:
- Scene View – Tempat Anda membangun dunia game.
- Game View – Menampilkan bagaimana game akan terlihat saat dimainkan.
- Hierarchy – Menampilkan daftar semua objek dalam scene.
- Inspector – Digunakan untuk mengedit properti objek yang dipilih.
- Project Window – Tempat menyimpan semua aset seperti gambar, skrip, dan suara.
- Console – Menampilkan pesan error atau log dari skrip.
2. Membuat Proyek Game Baru di Unity
Setelah memahami dasar antarmuka, langkah selanjutnya adalah membuat proyek game baru.
a. Membuat Proyek Baru
- Buka Unity Hub dan pilih New Project.
- Pilih template sesuai kebutuhan, misalnya 2D jika ingin membuat game platformer atau 3D untuk game dengan lingkungan tiga dimensi.
- Beri nama proyek, pilih lokasi penyimpanan, lalu klik Create.
b. Menambahkan Objek Dasar
Setelah proyek terbuka, Anda dapat mulai menambahkan objek dasar:
- Untuk game 2D, klik GameObject > 2D Object > Sprite untuk menambahkan karakter atau latar belakang.
- Untuk game 3D, gunakan GameObject > 3D Object > Cube/Sphere untuk menambahkan objek ke dalam scene.
c. Mengatur Kamera dan Cahaya
- Dalam game 2D, pastikan kamera diatur pada perspektif ortografis untuk tampilan datar tanpa efek kedalaman.
- Dalam game 3D, atur cahaya directional light agar objek terlihat lebih realistis.
Dengan langkah-langkah di atas, proyek Unity Anda sudah siap untuk mulai dikembangkan menjadi sebuah game sederhana.
3. Menambahkan Karakter dan Objek dalam Game
Setelah proyek siap, langkah berikutnya adalah menambahkan karakter utama dan objek lain yang akan digunakan dalam game.
a. Menambahkan Karakter ke dalam Scene
-
Untuk Game 2D:
- Tambahkan objek Sprite dengan cara klik GameObject > 2D Object > Sprite.
- Pilih gambar karakter yang ingin digunakan sebagai sprite. Jika belum memiliki gambar, gunakan placeholder seperti kotak sederhana.
- Gunakan Sprite Renderer di Inspector untuk mengubah tampilan karakter.
-
Untuk Game 3D:
- Tambahkan objek 3D seperti Cube atau Capsule melalui GameObject > 3D Object.
- Gunakan Mesh Renderer untuk menampilkan model karakter.
- Sesuaikan skala dan posisi karakter menggunakan Transform di Inspector.
b. Menambahkan Platform atau Lantai
- Untuk game 2D, tambahkan objek Tilemap atau Sprite sebagai lantai.
- Untuk game 3D, gunakan Cube yang diperbesar untuk dijadikan lantai.
- Pastikan semua objek memiliki komponen Collider agar karakter tidak jatuh menembus lantai.
c. Menambahkan RigidBody dan Collider
Agar karakter bisa berinteraksi dengan dunia game, tambahkan komponen berikut:
- RigidBody2D (untuk game 2D) atau RigidBody (untuk game 3D) agar karakter terpengaruh oleh gravitasi.
- BoxCollider2D atau CapsuleCollider2D untuk mendeteksi tabrakan pada karakter 2D.
- BoxCollider atau CapsuleCollider untuk mendeteksi tabrakan pada karakter 3D.
Dengan menambahkan elemen-elemen ini, karakter kini dapat berinteraksi dengan lingkungan dalam game.
4. Membuat Script Pergerakan Karakter
Agar karakter bisa bergerak, kita perlu membuat script menggunakan C#.
a. Menambahkan Script ke Karakter
- Pilih karakter di Hierarchy.
- Klik Add Component > New Script, beri nama PlayerMovement, lalu klik Create and Add.
- Buka script di Visual Studio dan tambahkan kode berikut:
Untuk game 2D:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float speed = 5f;
private Rigidbody2D rb;
private Vector2 moveInput;
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
void Update()
{
moveInput.x = Input.GetAxis("Horizontal");
moveInput.y = Input.GetAxis("Vertical");
}
void FixedUpdate()
{
rb.velocity = moveInput * speed;
}
}
Untuk game 3D:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float speed = 5f;
void Update()
{
float moveX = Input.GetAxis("Horizontal") * speed * Time.deltaTime;
float moveZ = Input.GetAxis("Vertical") * speed * Time.deltaTime;
transform.Translate(new Vector3(moveX, 0, moveZ));
}
}
b. Menambahkan Kontrol Loncat
Untuk menambahkan fitur loncatan, tambahkan kode ini dalam script PlayerMovement:
Untuk game 2D:
public float jumpForce = 5f;
private bool isGrounded = true;
void Update()
{
moveInput.x = Input.GetAxis("Horizontal");
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
rb.velocity = new Vector2(rb.velocity.x, jumpForce);
isGrounded = false;
}
}
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Ground"))
{
isGrounded = true;
}
}
Dengan script ini, karakter bisa bergerak ke kanan, kiri, dan melompat jika berada di tanah.
5. Menambahkan Musuh dan Sistem Skor
Agar game lebih menarik, kita perlu menambahkan musuh dan sistem skor. Ini akan membuat pemain memiliki tantangan dalam permainan.
a. Menambahkan Musuh dalam Game
-
Buat Prefab Musuh
- Untuk game 2D, gunakan Sprite atau gambar musuh dan tambahkan Rigidbody2D serta BoxCollider2D.
- Untuk game 3D, gunakan objek seperti Cube atau Capsule, tambahkan Rigidbody dan BoxCollider.
-
Membuat Script Musuh (EnemyMovement.cs)
- Tambahkan script untuk menggerakkan musuh secara otomatis:
Untuk game 2D:
using UnityEngine; public class EnemyMovement : MonoBehaviour { public float speed = 2f; private bool movingRight = true; public Transform groundDetection; void Update() { transform.Translate(Vector2.right * speed * Time.deltaTime); RaycastHit2D groundInfo = Physics2D.Raycast(groundDetection.position, Vector2.down, 2f); if (!groundInfo.collider) { Flip(); } } void Flip() { movingRight = !movingRight; transform.eulerAngles = new Vector3(0, movingRight ? 0 : 180, 0); } }
Untuk game 3D:
using UnityEngine; public class EnemyMovement : MonoBehaviour { public float speed = 3f; private Vector3 moveDirection = Vector3.right; void Update() { transform.Translate(moveDirection * speed * Time.deltaTime); Ray ray = new Ray(transform.position, moveDirection); if (!Physics.Raycast(ray, 1f)) { moveDirection *= -1; } } }
-
Menambahkan Collider untuk Deteksi Kematian
- Tambahkan Collider pada musuh untuk mendeteksi tabrakan dengan pemain.
- Buat script untuk mengurangi nyawa pemain jika terkena musuh.
void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.CompareTag("Player")) { Destroy(collision.gameObject); } }
b. Membuat Sistem Skor
-
Menambahkan UI untuk Menampilkan Skor
- Buka GameObject > UI > Text untuk menambahkan teks skor.
- Atur posisinya di layar menggunakan Rect Transform.
-
Membuat Script Sistem Skor (ScoreManager.cs)
using UnityEngine; using UnityEngine.UI; public class ScoreManager : MonoBehaviour { public static int score; public Text scoreText; void Update() { scoreText.text = "Score: " + score; } }
-
Menambahkan Poin Saat Mengalahkan Musuh
- Pada script musuh, tambahkan kode ini agar pemain mendapat poin saat musuh dikalahkan:
void OnDestroy() { ScoreManager.score += 10; }
Dengan langkah ini, game akan memiliki musuh yang bergerak dan sistem skor yang terus bertambah.
6. Menambahkan Level, Efek Suara, dan Mekanisme Menang/Kalah
Sekarang kita akan menyelesaikan game dengan menambahkan level, efek suara, serta sistem menang dan kalah.
a. Menambahkan Level dalam Game
-
Membuat Level Baru
- Di Unity Editor, buka File > New Scene untuk membuat level baru.
- Atur desain level dengan menambahkan platform, musuh, dan tantangan baru.
- Simpan level dengan nama seperti Level2.
-
Menambahkan Pintu atau Portal ke Level Berikutnya
- Buat GameObject > 2D Object > Sprite dan beri nama Portal.
- Tambahkan Collider (BoxCollider2D atau BoxCollider untuk 3D), lalu aktifkan IsTrigger.
- Buat script LevelManager.cs untuk berpindah ke level berikutnya.
using UnityEngine; using UnityEngine.SceneManagement; public class LevelManager : MonoBehaviour { void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.CompareTag("Player")) { SceneManager.LoadScene("Level2"); } } }
- Tambahkan script ini ke Portal dan pastikan objek Player memiliki tag "Player".
b. Menambahkan Efek Suara dalam Game
-
Menambahkan AudioManager
- Buat GameObject > Create Empty, beri nama AudioManager.
- Tambahkan AudioSource Component.
- Drag file suara ke AudioClip di Inspector.
-
Membuat Script AudioManager.cs
using UnityEngine; public class AudioManager : MonoBehaviour { public static AudioManager instance; public AudioSource jumpSound, enemyHitSound, winSound, gameOverSound; void Awake() { instance = this; } public void PlayJumpSound() { jumpSound.Play(); } public void PlayEnemyHitSound() { enemyHitSound.Play(); } public void PlayWinSound() { winSound.Play(); } public void PlayGameOverSound() { gameOverSound.Play(); } }
-
Menjalankan Suara dari Skrip Lain
- Panggil fungsi dalam skrip lain, misalnya pada PlayerController untuk suara loncatan:
AudioManager.instance.PlayJumpSound();
- Untuk suara saat menang:
AudioManager.instance.PlayWinSound();
- Panggil fungsi dalam skrip lain, misalnya pada PlayerController untuk suara loncatan:
c. Membuat Sistem Menang dan Kalah
Menambahkan Sistem Menang
-
Buat GameObject "Finish"
- Buat 2D Sprite atau 3D Object dan beri nama Finish.
- Tambahkan Collider (BoxCollider2D atau BoxCollider) dan aktifkan IsTrigger.
- Tambahkan script WinGame.cs:
using UnityEngine; using UnityEngine.SceneManagement; public class WinGame : MonoBehaviour { void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.CompareTag("Player")) { AudioManager.instance.PlayWinSound(); SceneManager.LoadScene("WinScene"); } } }
-
Buat Scene Kemenangan
- Buat New Scene, tambahkan teks "You Win!", dan tambahkan tombol Main Menu.
Menambahkan Sistem Kalah
-
Deteksi Kematian Pemain
- Jika nyawa habis atau jatuh dari platform, game akan berakhir.
- Tambahkan GameObject "DeathZone" di bawah level.
- Tambahkan script GameOver.cs:
using UnityEngine; using UnityEngine.SceneManagement; public class GameOver : MonoBehaviour { void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.CompareTag("Player")) { AudioManager.instance.PlayGameOverSound(); SceneManager.LoadScene("GameOverScene"); } } }
-
Buat Scene Game Over
- Tambahkan teks "Game Over" dan tombol Restart Game.
Akhirnya: Game Sederhana dengan Unity Selesai!
Selamat! Kamu telah berhasil membuat game sederhana dengan Unity. Kita telah belajar:
✔️ Membuat karakter pemain dan menggerakkannya.
✔️ Menambahkan musuh dan sistem skor.
✔️ Menambahkan level, efek suara, serta sistem menang dan kalah.
Selanjutnya, kamu bisa menambahkan lebih banyak fitur seperti power-up, senjata, atau AI musuh.
FAQ (Pertanyaan Umum)
1. Apakah saya perlu bisa coding sebelum belajar Unity?
Tidak harus, tetapi memiliki dasar pemrograman seperti C# akan sangat membantu.
2. Berapa lama waktu yang dibutuhkan untuk membuat game sederhana?
Sekitar 1–2 minggu untuk pemula, tergantung tingkat kesulitan dan fitur yang ditambahkan.
3. Bagaimana cara menambahkan lebih banyak level?
Buat scene baru dan gunakan SceneManager.LoadScene("NamaLevel") untuk berpindah antar level.
4. Bisakah game ini di-publish di Play Store?
Ya! Setelah game selesai, gunakan Build Settings > Android untuk mengekspor game ke Android.
Dengan ini, kamu sudah memiliki dasar yang kuat untuk membuat game sendiri! Coba eksplorasi lebih lanjut dan buat game yang lebih kompleks.