Membuat Manajer Game Sederhana di Unity
Game Manager di Unity adalah skrip atau sistem pusat yang mengawasi dan mengendalikan mekanisme inti dan logika permainan. Biasanya, skrip atau sistem ini mengelola status permainan (misalnya, mulai, jeda, akhir), kemajuan pemain, skor, level, dan pengaturan global. Game Manager sangat penting untuk memastikan struktur yang bersih dalam proyek Anda dan menghindari kode yang berulang. Dalam tutorial ini, kita akan membuat Game Manager dasar untuk menangani status permainan dan pelacakan skor.
Langkah 1: Menyiapkan Adegan
Untuk memulai, siapkan adegan Unity sederhana:
- Buat proyek Unity 3D baru.
- Tambahkan tata letak level dasar, seperti Pesawat untuk tanah dan beberapa objek untuk elemen permainan.
- Buat Kanvas UI untuk menampilkan informasi seperti skor.
Langkah 2: Membuat Skrip Manajer Game
Game Manager akan menjadi singleton untuk memastikannya mudah diakses dan hanya ada satu instance di seluruh permainan. Mari kita tulis skripnya:
- Klik kanan pada panel Project dan pilih Create > C# Script. Beri nama GameManager.
- Buka skrip di editor kode Anda dan ganti isinya dengan yang berikut ini:
using UnityEngine;
public class GameManager : MonoBehaviour
{
public static GameManager Instance; // Singleton instance
public int score = 0; // Player's score
public bool isGameActive = true; // Is the game running?
void Awake()
{
// Ensure there is only one instance of GameManager
if (Instance == null)
{
Instance = this;
DontDestroyOnLoad(gameObject); // Persist across scenes
}
else
{
Destroy(gameObject); // Destroy duplicate instances
}
}
// Method to increase the score
public void AddScore(int points)
{
if (isGameActive)
{
score += points;
Debug.Log("Score: " + score);
}
}
// Method to end the game
public void EndGame()
{
isGameActive = false;
Debug.Log("Game Over!");
// Additional logic to handle game over, like displaying UI
}
}
Langkah 3: Menambahkan Manajer Game ke Adegan
Sekarang, mari tambahkan Game Manager ke dalam adegan:
- Buat GameObject kosong dalam Hierarki dan beri nama GameManager.
- Tarik dan letakkan skrip GameManager ke GameObject.
- Pastikan tidak ada GameObject GameManager duplikat dalam adegan.
Langkah 4: Memperbarui Logika Gameplay
Mari kita manfaatkan Game Manager untuk menangani interaksi pemain. Misalnya, kita akan memodifikasi objek gameplay untuk berinteraksi dengan Game Manager:
- Buat skrip baru bernama Target untuk objek yang dapat berinteraksi dengan pemain.
- Gunakan kode berikut untuk skrip Target:
using UnityEngine;
public class Target : MonoBehaviour
{
public int pointValue = 10; // Points awarded for interacting with this target
void OnMouseDown()
{
if (GameManager.Instance.isGameActive)
{
// Add points to the score
GameManager.Instance.AddScore(pointValue);
// Destroy the target
Destroy(gameObject);
}
}
}
Skrip ini mengasumsikan pemain berinteraksi dengan objek dengan mengekliknya. Anda dapat menyesuaikannya dengan mekanisme permainan Anda, seperti tabrakan atau pemicu.
Langkah 5: Menampilkan Skor
Untuk menampilkan skor kepada pemain:
- Buat elemen UI Text di Canvas dan beri nama ScoreText.
- Buat skrip baru bernama ScoreUI dan lampirkan ke Canvas.
- Gunakan kode berikut untuk memperbarui tampilan skor:
using UnityEngine;
using UnityEngine.UI;
public class ScoreUI : MonoBehaviour
{
public Text scoreText;
void Update()
{
if (GameManager.Instance != null)
{
scoreText.text = "Score: " + GameManager.Instance.score;
}
}
}
Tarik elemen UI ScoreText ke bidang ScoreText di Inspektur.
Langkah 6: Menguji Manajer Game
Untuk menguji Game Manager Anda:
- Jalankan adegan dan berinteraksi dengan objek yang menggunakan skrip Target.
- Amati pembaruan skor di UI saat Anda berinteraksi dengan target.
- Panggil metode EndGame (misalnya, menggunakan pemicu atau tombol) untuk menguji akhir permainan.
Peningkatan Opsional
Anda dapat memperluas fungsionalitas Game Manager dengan fitur-fitur berikut:
- Manajemen Level: Muat level baru atau atur ulang adegan saat permainan berakhir.
- Penghitung Waktu Permainan: Tambahkan penghitung waktu mundur untuk menantang pemain.
- Menyimpan Kemajuan: Menyimpan dan mengambil kemajuan pemain menggunakan PlayerPrefs atau sistem penyimpanan.
- Menu Jeda: Terapkan menu jeda untuk menghentikan permainan dan menampilkan opsi.
Kesimpulan
Kami telah membuat Game Manager sederhana untuk mengelola status permainan dan pelacakan skor di Unity. Game Manager memusatkan logika inti, membuat proyek Anda lebih terorganisasi dan dapat diskalakan. Bereksperimenlah dengan fitur-fitur tambahan untuk menyesuaikan Game Manager dengan kebutuhan permainan Anda.