מערכת שדרוג נגן ב-Unity

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

דרישות מוקדמות

  • Unity עורך מותקן.
  • הבנה בסיסית של C# ומערכת ה-UI של Unity.
  • פרויקט שהוקם עם GameObject שחקן בסיסי ו-UI Canvas להצגת אפשרויות שדרוג.

שלב 1: הגדר תכונות נגן

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

using UnityEngine;

public class PlayerAttributes : MonoBehaviour
{
    public int health = 100;
    public float speed = 5f;
    public int attackPower = 10;

    public void IncreaseHealth(int amount)
    {
        health += amount;
        Debug.Log("Health increased to " + health);
    }

    public void IncreaseSpeed(float amount)
    {
        speed += amount;
        Debug.Log("Speed increased to " + speed);
    }

    public void IncreaseAttackPower(int amount)
    {
        attackPower += amount;
        Debug.Log("Attack Power increased to " + attackPower);
    }
}

צרף את PlayerAttributes הסקריפט הזה לשחקן GameObject כדי לנהל את התכונות שלו.

שלב 2: צור את מנהל השדרוג

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

using UnityEngine;

public class UpgradeManager : MonoBehaviour
{
    public PlayerAttributes player;
    public int healthUpgradeCost = 50;
    public int speedUpgradeCost = 30;
    public int attackUpgradeCost = 40;

    public void UpgradeHealth()
    {
        if (CurrencySystem.Instance.SpendCurrency(healthUpgradeCost))
        {
            player.IncreaseHealth(10); // Increase health by 10
        }
    }

    public void UpgradeSpeed()
    {
        if (CurrencySystem.Instance.SpendCurrency(speedUpgradeCost))
        {
            player.IncreaseSpeed(0.5f); // Increase speed by 0.5
        }
    }

    public void UpgradeAttackPower()
    {
        if (CurrencySystem.Instance.SpendCurrency(attackUpgradeCost))
        {
            player.IncreaseAttackPower(5); // Increase attack power by 5
        }
    }
}

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

שלב 3: צור מערכת מטבעות פשוטה

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

using UnityEngine;

public class CurrencySystem : MonoBehaviour
{
    public static CurrencySystem Instance;
    public int currency = 100;

    private void Awake()
    {
        if (Instance == null)
            Instance = this;
        else
            Destroy(gameObject);
    }

    public bool SpendCurrency(int amount)
    {
        if (currency >= amount)
        {
            currency -= amount;
            Debug.Log("Currency spent: " + amount + ". Remaining: " + currency);
            return true;
        }
        else
        {
            Debug.Log("Not enough currency.");
            return false;
        }
    }

    public void AddCurrency(int amount)
    {
        currency += amount;
        Debug.Log("Currency added: " + amount + ". Total: " + currency);
    }
}

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

שלב 4: הגדר ממשק משתמש לשדרוגים

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

  1. צור Canvas בסצנה שלך (GameObject > ממשק משתמש > Canvas).
  2. הוסף לחצנים לקנבס, וסמן אותם כ-"Upgrade Health," "Upgrade Speed," ו-"Upgrade Attack".
  3. צרף את הסקריפט UpgradeManager ל-GameObject בסצנה, והקצה את ה-GameObject לשחקן שלך לשדה player שלו במפקח.
  4. קשר את האירוע On Click של כל כפתור כדי לקרוא לפונקציית השדרוג המתאימה (למשל, UpgradeManager.UpgradeHealth()).

שלב 5: בדיקת מערכת השדרוג

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

מַסְקָנָה

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