Tạo Trình quản lý trò chơi đơn giản trong Unity

Game Manager trong Unity là một tập lệnh hoặc hệ thống trung tâm giám sát và kiểm soát các cơ chế và logic cốt lõi của trò chơi. Nó thường quản lý các trạng thái trò chơi (ví dụ: bắt đầu, tạm dừng, kết thúc), tiến trình của người chơi, điểm số, cấp độ và cài đặt chung. Game Manager rất quan trọng để đảm bảo cấu trúc sạch trong dự án của bạn và tránh mã thừa. Trong hướng dẫn này, chúng ta sẽ tạo một Game Manager cơ bản để xử lý trạng thái trò chơi và theo dõi điểm số.

Bước 1: Thiết lập bối cảnh

Để bắt đầu, hãy chuẩn bị một cảnh Unity đơn giản:

  1. Tạo một dự án Unity 3D mới.
  2. Thêm bố cục cấp độ cơ bản, chẳng hạn như Máy bay cho mặt đất và một vài vật thể cho các yếu tố trò chơi.
  3. Tạo UI Canvas để hiển thị thông tin như điểm số.

Bước 2: Tạo tập lệnh quản lý trò chơi

Game Manager sẽ là một singleton để đảm bảo dễ dàng truy cập và chỉ có một phiên bản tồn tại trong suốt trò chơi. Hãy viết tập lệnh:

  1. Nhấp chuột phải vào bảng Project và chọn Create > C# Script. Đặt tên là GameManager.
  2. Mở tập lệnh trong trình soạn thảo mã của bạn và thay thế nội dung của nó bằng nội dung sau:
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
    }
}

Bước 3: Thêm Trình quản lý trò chơi vào Cảnh

Bây giờ, hãy thêm Trình quản lý trò chơi vào cảnh:

  1. Tạo một GameObject trống trong Hierarchy và đặt tên là GameManager.
  2. Kéo và thả tập lệnh GameManager vào GameObject.
  3. Đảm bảo không có GameObject GameManager trùng lặp trong cảnh.

Bước 4: Cập nhật Logic trò chơi

Hãy sử dụng Game Manager để xử lý tương tác của người chơi. Ví dụ, chúng ta sẽ sửa đổi các đối tượng trò chơi để tương tác với Game Manager:

  1. Tạo một tập lệnh mới có tên Target cho các đối tượng mà người chơi có thể tương tác.
  2. Sử dụng mã sau cho tập lệnh 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);
        }
    }
}

Tập lệnh này giả định rằng người chơi tương tác với các đối tượng bằng cách nhấp vào chúng. Bạn có thể điều chỉnh nó cho phù hợp với cơ chế của trò chơi, chẳng hạn như va chạm hoặc kích hoạt.

Bước 5: Hiển thị Điểm

Để hiển thị điểm số cho người chơi:

  1. Tạo một phần tử UI Text trong Canvas và đặt tên là ScoreText.
  2. Tạo một tập lệnh mới có tên là ScoreUI và đính kèm vào Canvas.
  3. Sử dụng mã sau để cập nhật hiển thị điểm:
using UnityEngine;
using UnityEngine.UI;

public class ScoreUI : MonoBehaviour
{
    public Text scoreText;

    void Update()
    {
        if (GameManager.Instance != null)
        {
            scoreText.text = "Score: " + GameManager.Instance.score;
        }
    }
}

Kéo phần tử UI ScoreText vào trường ScoreText trong Thanh tra.

Bước 6: Kiểm tra Trình quản lý trò chơi

Để kiểm tra Trình quản lý trò chơi của bạn:

  1. Chạy cảnh và tương tác với các đối tượng sử dụng tập lệnh Target.
  2. Quan sát điểm số được cập nhật trong UI khi bạn tương tác với mục tiêu.
  3. Gọi phương thức EndGame (ví dụ, sử dụng trình kích hoạt hoặc nút) để kiểm tra kết thúc trò chơi.

Cải tiến tùy chọn

Bạn có thể mở rộng chức năng của Trình quản lý trò chơi bằng các tính năng sau:

  • Quản lý cấp độ: Tải cấp độ mới hoặc thiết lập lại bối cảnh khi trò chơi kết thúc.
  • Bộ đếm thời gian trò chơi: Thêm bộ đếm thời gian đếm ngược để thử thách người chơi.
  • Lưu tiến trình: Lưu trữ và truy xuất tiến trình của người chơi bằng PlayerPrefs hoặc hệ thống lưu.
  • Menu tạm dừng: Tạo menu tạm dừng để dừng trò chơi và hiển thị các tùy chọn.

Phần kết luận

Chúng tôi đã tạo ra một Trình quản lý trò chơi đơn giản để quản lý trạng thái trò chơi và theo dõi điểm trong Unity. Trình quản lý trò chơi tập trung logic cốt lõi, giúp dự án của bạn có tổ chức và có thể mở rộng hơn. Thử nghiệm với các tính năng bổ sung để điều chỉnh Trình quản lý trò chơi theo nhu cầu của trò chơi.