यूनिटी में दिन और रात का चक्र जोड़ना

दिन और रात का चक्र एक गतिशील प्रणाली है जो गेम की दुनिया में समय बीतने का अनुकरण करती है। यह सुविधा गेम के विसर्जन और यथार्थवाद को महत्वपूर्ण रूप से बढ़ा सकती है, जिससे गेमप्ले, वातावरण और सौंदर्यशास्त्र प्रभावित होता है। ओपन-वर्ल्ड, सर्वाइवल, आरपीजी और सिमुलेशन गेम जैसे विभिन्न गेम शैलियों को खिलाड़ियों के लिए अधिक आकर्षक अनुभव बनाने के लिए दिन और रात के चक्र से लाभ मिल सकता है।

दिन और रात का चक्र क्यों उपयोगी है?

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

  • समय बीतने और एक जीवित, सांस लेती दुनिया का एहसास पैदा करें।
  • गेमप्ले यांत्रिकी को प्रभावित करें, जैसे कि दिन के समय के आधार पर दुश्मन के व्यवहार, दृश्यता और खिलाड़ी की गतिविधियों को बदलना।
  • अलग-अलग प्रकाश स्थितियों के साथ दृश्य अपील और वातावरण को बढ़ाएं।
  • नई चुनौतियों और अवसरों का परिचय दें, जैसे कि रात्रिकालीन खोजें या समय-संवेदनशील घटनाएँ।

दिन और रात के चक्र से लाभ पाने वाले खेलों के प्रकार

ऐसे खेल जो दिन और रात के चक्र का अच्छा उपयोग कर सकते हैं, उनमें शामिल हैं:

  • ओपन-वर्ल्ड गेम्स: एक अधिक इमर्सिव दुनिया बनाएं जहां दिन का समय पर्यावरण और एनपीसी व्यवहार को प्रभावित करता है।
  • उत्तरजीविता खेल: रणनीतिक तत्व जोड़ें जहां खिलाड़ियों को रात के समय के खतरों के लिए तैयार रहना चाहिए।
  • आरपीजी: समय-आधारित घटनाओं, खोजों और गतिशील कहानी कहने वाले तत्वों का परिचय दें।
  • सिमुलेशन गेम्स: पात्रों के लिए यथार्थवादी वातावरण और दैनिक दिनचर्या का अनुकरण करें।

दिन और रात के चक्र को लागू करने के लिए चरण-दर-चरण मार्गदर्शिका Unity

चरण 1: दृश्य सेट करना

सबसे पहले, एक नया दृश्य बनाएं या पहले से मौजूद दृश्य का उपयोग करें। सुनिश्चित करें कि आपके दृश्य में दिशात्मक प्रकाश हो, जो सूर्य की तरह काम करेगा।

चरण 2: दिन और रात चक्र स्क्रिप्ट बनाना

DayNightCycle नाम से एक नई C# स्क्रिप्ट बनाएँ और इसे अपने सीन में खाली GameObject से जोड़ें। चक्र को संभालने के लिए स्क्रिप्ट यहाँ दी गई है:

using UnityEngine;

public class DayNightCycle : MonoBehaviour
{
    public Light directionalLight;
    public float dayLength = 120f; // Length of a full day in seconds
    private float time;

    void Update()
    {
        // Increment time
        time += Time.deltaTime / dayLength;
        time %= 1; // Keep time in range [0, 1]

        // Rotate the directional light to simulate the sun's movement
        float sunAngle = time * 360f - 90f;
        directionalLight.transform.localRotation = Quaternion.Euler(sunAngle, 170f, 0f);

        // Adjust the light's intensity based on the time of day
        if (time <= 0.23f || time >= 0.75f)
        {
            directionalLight.intensity = 0;
        }
        else if (time <= 0.25f)
        {
            directionalLight.intensity = Mathf.Lerp(0, 1, (time - 0.23f) * 50);
        }
        else if (time >= 0.73f)
        {
            directionalLight.intensity = Mathf.Lerp(1, 0, (time - 0.73f) * 50);
        }
        else
        {
            directionalLight.intensity = 1;
        }
    }
}

चरण 3: प्रकाश को कॉन्फ़िगर करना

इंस्पेक्टर में directionalLight वैरिएबल को अपना दिशात्मक प्रकाश असाइन करें। सेकंड में पूरे दिन की लंबाई सेट करने के लिए dayLength वैरिएबल को एडजस्ट करें।

चरण 4: स्काईबॉक्स और परिवेश प्रकाश जोड़ना

विज़ुअल इफ़ेक्ट को और बेहतर बनाने के लिए, आप दिन के समय के आधार पर स्काईबॉक्स और परिवेश प्रकाश को बदल सकते हैं। DayNightCycle स्क्रिप्ट में निम्न कोड जोड़ें:

public Material daySkybox;
public Material nightSkybox;
public Color dayAmbientLight;
public Color nightAmbientLight;

void Update()
{
    // Existing time and light rotation code...

    // Change skybox based on time of day
    if (time >= 0.25f && time < 0.75f)
    {
        RenderSettings.skybox = daySkybox;
        RenderSettings.ambientLight = dayAmbientLight;
    }
    else
    {
        RenderSettings.skybox = nightSkybox;
        RenderSettings.ambientLight = nightAmbientLight;
    }

    DynamicGI.UpdateEnvironment();
}

चरण 5: स्काईबॉक्स और परिवेश प्रकाश निर्दिष्ट करना

इंस्पेक्टर में, दिन और रात के स्काईबॉक्स के लिए उपयुक्त सामग्री, साथ ही परिवेशीय प्रकाश के लिए रंग निर्धारित करें।

चरण 6: दिन और रात के चक्र का परीक्षण

दृश्य चलाएँ और दिन और रात के चक्र को क्रियाशील रूप में देखें। वांछित प्रभाव प्राप्त करने के लिए आवश्यकतानुसार सेटिंग्स समायोजित करें।

निष्कर्ष

अपने Unity गेम में दिन और रात का चक्र जोड़ने से एक गतिशील और इमर्सिव दुनिया बनाकर खिलाड़ी के अनुभव को काफी हद तक बढ़ाया जा सकता है। इस ट्यूटोरियल का पालन करके, आप एक बुनियादी दिन और रात चक्र को लागू कर सकते हैं और इसे अपने गेम की ज़रूरतों के हिसाब से कस्टमाइज़ कर सकते हैं। चाहे आप एक ओपन-वर्ल्ड एडवेंचर, एक सर्वाइवल गेम या सिमुलेशन विकसित कर रहे हों, एक दिन और रात का चक्र आपके गेम को जीवंत बना सकता है।

लिंक
Unity 6