यूनिटी में प्लेयर अपग्रेड सिस्टम
यह ट्यूटोरियल आपको Unity में एक बुनियादी अपग्रेड सिस्टम बनाने के बारे में मार्गदर्शन करेगा। अपग्रेड सिस्टम गेम में आम हैं, जो खिलाड़ियों को समय के साथ अपने पात्रों, उपकरणों या क्षमताओं को बेहतर बनाने की अनुमति देते हैं। हम एक उदाहरण अपग्रेड सिस्टम बनाएंगे जो खिलाड़ी को स्वास्थ्य, गति और हमले की शक्ति जैसी विशेषताओं को बढ़ाने की अनुमति देता है।
आवश्यक शर्तें
- Unity संपादक स्थापित.
- C# और यूनिटी की UI प्रणाली की बुनियादी समझ।
- एक बुनियादी प्लेयर गेमऑब्जेक्ट और अपग्रेड विकल्पों को प्रदर्शित करने के लिए UI कैनवास के साथ स्थापित एक परियोजना।
चरण 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
स्क्रिप्ट को उससे संलग्न करें।
चरण 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
स्क्रिप्ट मुद्रा जोड़ और खर्च कर सकती है, और इसे सिंगलटन के रूप में लागू किया गया है ताकि आप इसे अन्य स्क्रिप्ट से आसानी से एक्सेस कर सकें। इसे सीन में गेमऑब्जेक्ट से जोड़ें।
चरण 4: अपग्रेड के लिए UI सेट अप करें
खिलाड़ियों को अपग्रेड सिस्टम के साथ इंटरैक्ट करने देने के लिए, Unity में प्रत्येक अपग्रेड विकल्प के लिए बटन के साथ एक UI बनाएं। यहाँ बताया गया है कि कैसे:
- अपने दृश्य में एक कैनवास बनाएं (GameObject > UI > Canvas).
- कैनवास में बटन जोड़ें, उन्हें "Upgrade Health," "Upgrade Speed," और "Upgrade Attack" के रूप में लेबल करें।
UpgradeManager
स्क्रिप्ट को दृश्य में GameObject से जोड़ें, तथा अपने प्लेयर GameObject को इंस्पेक्टर में उसकेplayer
फील्ड में असाइन करें।- उपयुक्त अपग्रेड फ़ंक्शन (जैसे,
UpgradeManager.UpgradeHealth()
) को कॉल करने के लिए प्रत्येक बटन के On Click इवेंट को लिंक करें।
चरण 5: अपग्रेड सिस्टम का परीक्षण
गेम चलाएं, और अपग्रेड बटन दबाकर देखें। प्रत्येक अपग्रेड खिलाड़ी की विशेषताओं पर लागू होना चाहिए, और CurrencySystem
को तदनुसार मुद्रा कम करनी चाहिए। यह पुष्टि करने के लिए डीबग लॉग का उपयोग करें कि विशेषताएँ और मुद्रा अपेक्षित रूप से अपडेट होती हैं।
निष्कर्ष
हमने Unity में एक बुनियादी अपग्रेड सिस्टम बनाया है, जिसमें खिलाड़ी विशेषताएँ, एक मुद्रा प्रणाली और एक अपग्रेड प्रबंधक शामिल हैं। आप इस सिस्टम को और अधिक अपग्रेड जोड़ने, अपग्रेड लागत को गतिशील रूप से बढ़ाने या अपने गेम की आवश्यकताओं के आधार पर नए प्रकार के अपग्रेड जोड़ने के लिए अनुकूलित कर सकते हैं। इस नींव का विस्तार आपके गेम में अधिक जटिल और आकर्षक अपग्रेड मैकेनिक्स बनाने के लिए किया जा सकता है।