एकता में विजयी स्थिति का क्रियान्वयन

कई खेलों में, यह निर्धारित करने के लिए कि खिलाड़ी ने कब सफलता प्राप्त की है, एक स्पष्ट जीत की स्थिति आवश्यक है। इस ट्यूटोरियल में, हम Unity में एक सरल जीत की स्थिति को लागू करेंगे। यह स्थिति जाँचेगी कि क्या खिलाड़ी कुछ निश्चित मानदंडों को पूरा करता है (जैसे, आइटम एकत्र करना, दुश्मनों को हराना, या किसी गंतव्य तक पहुँचना) और उन शर्तों के पूरा होने पर जीत की स्थिति को ट्रिगर करता है।

1. जीतने की शर्तें परिभाषित करें

सिस्टम को लागू करने से पहले, हमें यह परिभाषित करना होगा कि आपके गेम में जीत क्या होती है। इस उदाहरण के लिए, हम मान लेंगे कि खिलाड़ी लेवल में सभी आवश्यक आइटम एकत्र करके जीतता है। आप इसे अन्य गेम प्रकारों के अनुरूप संशोधित कर सकते हैं, जैसे दुश्मनों को हराना या कोई उद्देश्य पूरा करना।

2. विन मैनेजर बनाएं

WinManager स्क्रिप्ट जीत की स्थिति की जाँच करने के लिए तर्क को संभालेगी। हम एक ऐसा सिस्टम बनाएंगे जो जाँच करेगा कि क्या खिलाड़ी ने सभी आवश्यक वस्तुएँ एकत्र कर ली हैं, और जब ऐसा होता है, तो यह एक जीत की घटना को ट्रिगर करेगा।

using UnityEngine;

public class WinManager : MonoBehaviour
{
    public int totalItems = 5; // Total number of items needed to win
    private int collectedItems = 0; // Counter for collected items

    // Call this method when the player collects an item
    public void CollectItem()
    {
        collectedItems++;
        Debug.Log("Item collected. " + collectedItems + "/" + totalItems);

        // Check if the player has collected all items
        if (collectedItems >= totalItems)
        {
            WinGame();
        }
    }

    // This method is called when the player wins
    private void WinGame()
    {
        Debug.Log("You win!");
        // Here you can add more win logic like displaying a UI or stopping the game
        // For example, load a win scene:
        // SceneManager.LoadScene("WinScene");
    }
}

यह WinManager स्क्रिप्ट इस बात पर नज़र रखती है कि खिलाड़ी ने कितने आइटम एकत्र किए हैं। एक बार जब खिलाड़ी सभी आइटम एकत्र कर लेता है (या जीत की शर्त को पूरा कर लेता है), तो WinGame() विधि को कॉल किया जाता है, जो एक सरल “आप जीत गए!” संदेश प्रदर्शित करता है। आप इसे आसानी से जीत स्क्रीन दिखाने या नए दृश्य में संक्रमण दिखाने के लिए विस्तारित कर सकते हैं।

3. आइटम संग्रह प्रणाली की स्थापना

अब, हम एक ऐसा सिस्टम बनाएंगे जिससे खिलाड़ी को आइटम एकत्रित करने की अनुमति मिलेगी। यह तब पता लगाकर किया जा सकता है जब खिलाड़ी संग्रहणीय वस्तुओं से टकराता है।

using UnityEngine;

public class CollectibleItem : MonoBehaviour
{
    public WinManager winManager;

    // When the player collides with the item, it is collected
    private void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            winManager.CollectItem(); // Notify the WinManager
            Destroy(gameObject); // Remove the collected item from the scene
        }
    }
}

यह स्क्रिप्ट यह पता लगाती है कि खिलाड़ी कब किसी वस्तु से टकराता है और WinManager को सूचित करती है कि वस्तु एकत्रित कर ली गई है। वस्तु एकत्रित होने के बाद, उसे दृश्य से नष्ट कर दिया जाता है।

4. जीत की स्थिति के लिए UI का क्रियान्वयन

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

  1. दृश्य में एक कैनवास बनाएं (GameObject > UI > Canvas).
  2. "आप जीत गए!" संदेश प्रदर्शित करने के लिए कैनवास पर एक टेक्स्ट तत्व जोड़ें।
  3. WinManager स्क्रिप्ट में, इस टेक्स्ट तत्व को संदर्भित करें और खिलाड़ी के जीतने पर इसकी दृश्यता को अपडेट करें।
using UnityEngine;
using UnityEngine.UI;

public class WinManager : MonoBehaviour
{
    public int totalItems = 5;
    private int collectedItems = 0;
    public Text winText; // Reference to the "You Win!" text UI

    public void CollectItem()
    {
        collectedItems++;
        Debug.Log("Item collected. " + collectedItems + "/" + totalItems);

        if (collectedItems >= totalItems)
        {
            WinGame();
        }
    }

    private void WinGame()
    {
        Debug.Log("You win!");
        winText.text = "You Win!"; // Show the win message
        winText.gameObject.SetActive(true); // Make the message visible
        Time.timeScale = 0; // Stop the game (optional)
    }
}

उपरोक्त कोड में, जब खिलाड़ी जीतता है, तो winText टेक्स्ट घटक को “आप जीत गए!” प्रदर्शित करने के लिए अपडेट किया जाता है और खेल को Time.timeScale = 0; का उपयोग करके रोक दिया जाता है।

5. जीतने की स्थिति का परीक्षण

गेम खेलें और जांचें कि क्या खिलाड़ी द्वारा सभी आइटम एकत्र करने पर जीत की स्थिति सक्रिय होती है। आपको स्क्रीन पर "आप जीत गए!" संदेश दिखाई देना चाहिए, और गेम रुक जाएगा। यदि आप किसी दृश्य संक्रमण का उपयोग कर रहे हैं, तो आप गेम समाप्त होने का संकेत देने के लिए एक नया दृश्य भी लोड कर सकते हैं।

जीतने की स्थिति का विस्तार

आपके खेल के प्रकार के आधार पर, जीतने की स्थिति को अतिरिक्त कारकों को शामिल करने के लिए विस्तारित किया जा सकता है:

  • एक स्तर में सभी दुश्मनों को हराना.
  • एक निश्चित समय सीमा के भीतर किसी विशिष्ट स्थान पर पहुंचना।
  • कार्यों या उद्देश्यों की एक श्रृंखला को पूरा करना।

इन स्थितियों को नई स्क्रिप्ट बनाकर या विभिन्न परिदृश्यों के लिए WinManager को संशोधित करके इसी तरह जोड़ा जा सकता है।

निष्कर्ष

हमने Unity में आइटम एकत्रित करने के आधार पर एक सरल जीत की स्थिति लागू की है। यह सिस्टम लचीला है और इसे आसानी से अन्य गेम मैकेनिक्स में अनुकूलित किया जा सकता है। UI और उचित गेम फ्लो के साथ, अब आपके पास अपने गेम में जीत की स्थिति को ट्रिगर करने के लिए एक बुनियादी संरचना है।

लिंक
Unity 6