יצירת מנהל משחק פשוט ב-Unity

Game Manager ב-Unity הוא סקריפט או מערכת מרכזית שמפקחת ושולטת במכניקת הליבה והלוגיקה של משחק. זה בדרך כלל מנהל מצבי משחק (למשל, התחלה, השהייה, סיום), התקדמות שחקן, תוצאות, רמות והגדרות גלובליות. מנהל המשחקים חיוני להבטחת מבנה נקי בפרויקט שלך והימנעות מקוד מיותר. במדריך זה, ניצור מנהל משחק בסיסי לטיפול במצב המשחק ומעקב אחר ציונים.

שלב 1: הגדרת הסצנה

כדי להתחיל, הכינו סצנה פשוטה של ​​Unity:

  1. צור פרויקט Unity 3D חדש.
  2. הוסף פריסה ברמה בסיסית, כגון Plane עבור הקרקע וכמה אובייקטים עבור רכיבי משחק.
  3. צור קנבס ממשק משתמש כדי להציג מידע כמו הציון.

שלב 2: יצירת סקריפט מנהל המשחקים

מנהל המשחק יהיה יחיד כדי להבטיח שהוא נגיש בקלות ושרק מופע אחד קיים לאורך המשחק. בוא נכתוב את התסריט:

  1. לחץ לחיצה ימנית בחלונית Project ובחר Create > C# Script. תן לזה GameManager.
  2. פתח את הסקריפט בעורך הקוד שלך והחלף את תוכנו בדברים הבאים:
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
    }
}

שלב 3: הוספת מנהל המשחקים לסצנה

כעת, בואו נוסיף את מנהל המשחקים לסצנה:

  1. צור GameObject ריק בהיררכיה וקרא לו GameManager.
  2. גרור ושחרר את הסקריפט GameManager אל ה-GameObject.
  3. ודא שאין כפולים של GameManager GameObjects בסצנה.

שלב 4: עדכון לוגיקה של משחק

בואו נשתמש במנהל המשחקים כדי לטפל באינטראקציות עם שחקנים. לדוגמה, נשנה אובייקטי משחק לאינטראקציה עם מנהל המשחק:

  1. צור סקריפט חדש בשם Target עבור אובייקטים שהשחקן יכול לקיים איתם אינטראקציה.
  2. השתמש בקוד הבא עבור סקריפט היעד:
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);
        }
    }
}

סקריפט זה מניח שהשחקן מקיים אינטראקציה עם אובייקטים על ידי לחיצה עליהם. אתה יכול להתאים אותו למכניקה של המשחק שלך, כגון התנגשויות או טריגרים.

שלב 5: הצגת הציון

כדי להציג את הניקוד לשחקן:

  1. צור רכיב Text ב-Canvas וקרא לו ScoreText.
  2. צור סקריפט חדש בשם ScoreUI וצרף אותו ל-Canvas.
  3. השתמש בקוד הבא כדי לעדכן את תצוגת הניקוד:
using UnityEngine;
using UnityEngine.UI;

public class ScoreUI : MonoBehaviour
{
    public Text scoreText;

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

גרור את רכיב ממשק המשתמש של ScoreText לשדה ScoreText במפקח.

שלב 6: בדיקת מנהל המשחקים

כדי לבדוק את מנהל המשחקים שלך:

  1. הפעל את הסצנה וקיים אינטראקציה עם אובייקטים המשתמשים בסקריפט Target.
  2. צפה בעדכון הציון בממשק המשתמש בזמן שאתה מקיים אינטראקציה עם מטרות.
  3. התקשר לשיטת EndGame (למשל, באמצעות טריגר או כפתור) כדי לבדוק את סיום המשחק.

שיפורים אופציונליים

אתה יכול להרחיב את הפונקציונליות של מנהל המשחקים עם התכונות הבאות:

  • ניהול רמות: טען רמות חדשות או אפס את הסצנה בסיום המשחק.
  • טיימר משחק: הוסף טיימר ספירה לאחור כדי לאתגר את השחקנים.
  • שמירת התקדמות: אחסן ואחזר התקדמות שחקן באמצעות PlayerPrefs או מערכת שמירה.
  • תפריט הפסקה: יישם תפריט הפסקה כדי לעצור את המשחק ולהראות אפשרויות.

מַסְקָנָה

יצרנו מנהל משחק פשוט לניהול מצב המשחק ומעקב אחר ציונים ב-Unity. מנהל המשחקים מרכז את לוגיקה הליבה, מה שהופך את הפרויקט שלך למאורגן וניתן להרחבה יותר. נסה עם תכונות נוספות כדי להתאים את מנהל המשחקים לצרכי המשחק שלך.