यूनिटी में बेस अपग्रेड सिस्टम

कई खेलों में, खिलाड़ी अतिरिक्त सुविधाओं को अनलॉक करने, रक्षा में सुधार करने या उत्पादन दर बढ़ाने के लिए किसी बेस या बिल्डिंग को अपग्रेड करने में सक्षम होते हैं। यह ट्यूटोरियल आपको Unity में बेस अपग्रेड सिस्टम सेट करने के बारे में मार्गदर्शन करेगा, जिससे बिल्डिंग को प्रत्येक स्तर पर दृश्य और कार्यात्मक परिवर्तनों के साथ कई स्तरों पर अपग्रेड किया जा सकेगा।

1. आधार संरचना की स्थापना

सबसे पहले, एक Base स्क्रिप्ट बनाएं जो आपके बेस के गुणों को परिभाषित करती है, जैसे कि इसका स्तर, स्वास्थ्य और उत्पादन दर। प्रत्येक स्तर का उन्नयन इन विशेषताओं को संशोधित करेगा।

using UnityEngine;

public class Base : MonoBehaviour
{
    public int level = 1;
    public int health = 100;
    public int productionRate = 10;

    public void UpgradeBase()
    {
        level++;
        health += 50; // Increase health by 50 with each level
        productionRate += 5; // Increase production rate by 5 with each level
        Debug.Log("Base upgraded to level " + level);
    }
}

इस Base स्क्रिप्ट में एक सरल UpgradeBase() विधि शामिल है जो स्तर को बढ़ाती है और आधार की विशेषताओं को अपग्रेड करती है। इस स्क्रिप्ट को दृश्य में आधार GameObject से जोड़ें।

2. अपग्रेड प्रबंधक बनाना

इसके बाद, एक UpgradeManager स्क्रिप्ट बनाएं जो आधारभूत उन्नयन का प्रबंधन करे, जिसमें यह जांचना भी शामिल है कि खिलाड़ी के पास उन्नयन के लिए पर्याप्त मुद्रा है या नहीं।

using UnityEngine;

public class UpgradeManager : MonoBehaviour
{
    public Base playerBase;
    public int upgradeCost = 100;

    public void AttemptUpgrade()
    {
        if (CurrencySystem.Instance.SpendCurrency(upgradeCost))
        {
            playerBase.UpgradeBase();
            upgradeCost += 50; // Increase the cost for each upgrade
        }
        else
        {
            Debug.Log("Not enough currency to upgrade.");
        }
    }
}

इस UpgradeManager स्क्रिप्ट को GameObject से जोड़ें, बेस GameObject को उसके playerBase फ़ील्ड में असाइन करें, और आरंभिक upgradeCost सेट करें। प्रत्येक अपग्रेड से लागत बढ़ती है, जिससे भविष्य के अपग्रेड अधिक चुनौतीपूर्ण हो जाते हैं।

3. मुद्रा प्रणाली की स्थापना

अपग्रेड लागतों को प्रबंधित करने के लिए, खिलाड़ी की मुद्रा को ट्रैक करने और खर्च करने के सरल तरीके के रूप में CurrencySystem जोड़ें। यहाँ एक उदाहरण दिया गया है:

using UnityEngine;

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

    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 से जोड़ें। सिंगलटन पैटर्न अन्य स्क्रिप्ट, जैसे UpgradeManager से आसान पहुँच की अनुमति देता है।

4. प्रत्येक स्तर पर दृश्य और प्रभाव अद्यतन करना

प्रत्येक बेस अपग्रेड को दृष्टिगत रूप से अलग बनाने के लिए, प्रत्येक स्तर के लिए विभिन्नताएँ जोड़ें, जैसे कि अलग-अलग मॉडल या बनावट। उदाहरण के लिए:

  1. प्रत्येक आधार स्तर के लिए अनेक 3D मॉडल बनाएं, या अलग-अलग बनावट/सामग्री तैयार करें।
  2. प्रत्येक बार स्तर बढ़ने पर मॉडल या सामग्रियों को बदलने के लिए Base वर्ग में कोड जोड़ें।

Base स्क्रिप्ट में विज़ुअल्स को अपडेट करने के लिए यहां एक कोड स्निपेट दिया गया है:

public GameObject[] levelModels; // Assign each level's model in Inspector

public void UpgradeBase()
{
    level++;
    health += 50;
    productionRate += 5;
    UpdateBaseModel();
}

void UpdateBaseModel()
{
    for (int i = 0; i < levelModels.Length; i++)
    {
        levelModels[i].SetActive(i == level - 1);
    }
}

यह कोड आधार के वर्तमान स्तर से मेल खाने वाले मॉडल को सक्रिय करेगा तथा अन्य को निष्क्रिय कर देगा।

5. अपग्रेड के लिए UI बनाना

इसके बाद, खिलाड़ी को अपग्रेड शुरू करने और बेस के वर्तमान स्तर को ट्रैक करने की अनुमति देने के लिए UI तत्व बनाएं। ऐसा करने के लिए:

  1. "Upgrade Base" लेबल वाले बटन के साथ एक कैनवास बनाएं।
  2. इस बटन पर एक OnClick इवेंट संलग्न करें, इसे UpgradeManager की AttemptUpgrade विधि से लिंक करें।
  3. खिलाड़ियों को उन्नयन प्रगति पर प्रतिक्रिया देने के लिए यूआई पर आधार का स्तर, स्वास्थ्य और उत्पादन दर प्रदर्शित करें।

6. अपग्रेड सिस्टम का परीक्षण

गेम चलाएं और "Upgrade Base" बटन पर क्लिक करें। प्रत्येक अपग्रेड के साथ, बेस की विशेषताएं बढ़नी चाहिए, और दृश्य तदनुसार बदलना चाहिए। मुद्रा परिवर्तन और स्तर समायोजन को सत्यापित करने के लिए डीबग लॉग का उपयोग करें।

प्रणाली का विस्तार

इस आधार उन्नयन प्रणाली को निम्नलिखित जोड़कर विस्तारित किया जा सकता है:

  • विशिष्ट विशेषताओं और दृश्य संवर्द्धन के साथ नए स्तर।
  • मुद्रा से परे संसाधन की आवश्यकताएं, जैसे सामग्री या समय।
  • उन्नयन के लिए विशेष प्रभाव, जैसे कण प्रभाव या ध्वनि प्रतिक्रिया।

निष्कर्ष

हमने Unity में एक बेस अपग्रेड सिस्टम बनाया है, जिसमें डायनेमिक विशेषता वृद्धि, एक सरल मुद्रा जांच और अपग्रेड के लिए UI शामिल है। यह सिस्टम आपके गेम में अधिक जटिल मैकेनिक्स जोड़ने के लिए एक आधार प्रदान करता है, जैसे कि मल्टी-स्टेज अपग्रेड और प्रत्येक स्तर के लिए अलग-अलग विज़ुअल।

लिंक
Unity 6