Membuat Mini-Game dengan C# di Unity

Dalam tutorial ini, kita akan membahas proses pembuatan mini-game di Unity menggunakan C#. Pada akhirnya, Anda akan memiliki pemahaman dasar tentang pengembangan game di Unity dan dapat mengembangkannya untuk membuat game yang lebih kompleks.

Mempersiapkan

Sebelum memulai, pastikan Anda telah menginstal Unity dan memiliki pemahaman dasar tentang pemrograman C#. Buat proyek Unity baru atau buka proyek yang sudah ada tempat Anda ingin membuat mini-game.

Konsep Mini-Game

Mini-game kami akan berupa permainan "Catch the Falling Objects" yang sederhana. Pemain mengendalikan dayung di bagian bawah layar dan mencoba menangkap benda yang jatuh menggunakan input keyboard.

Langkah-Langkah Implementasi

Langkah 1: Menyiapkan Adegan

  1. Buat proyek 2D Unity baru atau gunakan yang sudah ada.
  2. Buat sprite 2D untuk dayung pemain dan objek jatuh.
  3. Buat objek dasar dan tetapkan batas untuk area permainan.

Langkah 2: Skrip Pengendali Pemain

Buat skrip C# untuk mengontrol dayung pemain. Lampirkan skrip ini ke GameObject dayung.

using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public float speed = 5f; // Adjust speed as needed

    void Update()
    {
        float moveInput = Input.GetAxis("Horizontal");
        float moveAmount = moveInput * speed * Time.deltaTime;
        transform.Translate(Vector3.right * moveAmount);

        // Clamp player within screen boundaries
        float screenEdge = Camera.main.orthographicSize * Camera.main.aspect;
        float clampX = Mathf.Clamp(transform.position.x, -screenEdge, screenEdge);
        transform.position = new Vector3(clampX, transform.position.y, transform.position.z);
    }
}

Langkah 3: Generator Objek Jatuh

Buat skrip untuk menghasilkan objek jatuh secara acak dari atas layar. Lampirkan skrip ini ke GameObject yang kosong atau kelola dalam GameManager.

using UnityEngine;

public class ObjectGenerator : MonoBehaviour
{
    public GameObject objectPrefab;
    public float spawnInterval = 1f;
    public float spawnWidth = 4f;

    void Start()
    {
        InvokeRepeating("SpawnObject", 0f, spawnInterval);
    }

    void SpawnObject()
    {
        float randomX = Random.Range(-spawnWidth, spawnWidth);
        Vector3 spawnPosition = new Vector3(randomX, transform.position.y, transform.position.z);
        Instantiate(objectPrefab, spawnPosition, Quaternion.identity);
    }
}

Langkah 4: Pengumpulan dan Penilaian Objek

Buat skrip untuk menangani pengumpulan objek oleh dayung pemain dan memperbarui skor. Lampirkan skrip ini ke objek yang jatuh.

using UnityEngine;

public class ObjectCollector : MonoBehaviour
{
    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Player"))
        {
            // Handle scoring or game logic here
            Destroy(gameObject); // Destroy the collected object
        }
    }
}

Langkah 5: Manajer Game

Buat skrip GameManager untuk mengelola status permainan, skor, dan kondisi permainan berakhir.

using UnityEngine;
using UnityEngine.SceneManagement;

public class GameManager : MonoBehaviour
{
    public GameObject gameOverUI;
    bool isGameOver = false;

    void Update()
    {
        if (!isGameOver && GameOverCondition())
        {
            GameOver();
        }
    }

    bool GameOverCondition()
    {
        // Define your game over condition here (e.g., time limit, lives lost)
        return false;
    }

    void GameOver()
    {
        isGameOver = true;
        gameOverUI.SetActive(true); // Display game over UI
        Time.timeScale = 0f; // Freeze game time
    }

    public void RestartGame()
    {
        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    }
}

Langkah 6: Pengaturan UI

Buat elemen UI seperti tampilan skor, layar akhir permainan, dan tombol mulai ulang. Lampirkan metode GameManager ke tombol UI yang sesuai untuk memulai ulang permainan.

Kesimpulan

Anda telah membuat mini-game sederhana di Unity menggunakan C#. Pengaturan dasar ini dapat diperluas dengan fitur-fitur tambahan seperti power-up, level, dan mekanisme permainan yang lebih kompleks. Bereksperimenlah dengan berbagai ide untuk membuat mini-game Anda lebih menarik dan menyenangkan.