إضافة دورة الليل والنهار في Unity

دورة الليل والنهار هي نظام ديناميكي يحاكي مرور الوقت في عالم اللعبة. يمكن لهذه الميزة أن تعزز بشكل كبير من الانغماس والواقعية في اللعبة، مما يؤثر على طريقة اللعب والأجواء والجماليات. يمكن أن تستفيد أنواع الألعاب المختلفة، مثل العالم المفتوح وألعاب البقاء وألعاب تقمص الأدوار وألعاب المحاكاة، من دورة الليل والنهار لخلق تجربة أكثر جاذبية للاعبين.

لماذا تعتبر دورة الليل والنهار مفيدة؟

إن دمج دورة الليل والنهار يمكن أن يضيف عمقًا وتعقيدًا إلى لعبتك. ويمكن استخدامه في:

  • خلق شعور بمرور الوقت وعالم حي يتنفس.
  • التأثير على آليات اللعب، مثل تغيير سلوك العدو، والرؤية، وأفعال اللاعب بناءً على الوقت من اليوم.
  • قم بتعزيز الجاذبية البصرية والأجواء باستخدام ظروف الإضاءة المتنوعة.
  • قم بتقديم تحديات وفرص جديدة، مثل المهام الليلية أو الأحداث الحساسة للوقت.

أنواع الألعاب التي تستفيد من دورة الليل والنهار

تتضمن الألعاب التي يمكنها الاستفادة بشكل جيد من دورة الليل والنهار ما يلي:

  • ألعاب العالم المفتوح: قم بإنشاء عالم أكثر غامرة حيث يؤثر وقت اليوم على البيئة وسلوك الشخصيات غير القابلة للعب.
  • ألعاب البقاء على قيد الحياة: أضف عناصر إستراتيجية حيث يجب على اللاعبين الاستعداد لمخاطر الليل.
  • ألعاب تقمص الأدوار: تقدم أحداثًا تعتمد على الوقت ومهامًا وعناصر سردية ديناميكية.
  • ألعاب المحاكاة: محاكاة البيئات الواقعية والروتين اليومي للشخصيات.

دليل خطوة بخطوة لتنفيذ دورة الليل والنهار في Unity

الخطوة 1: إعداد المشهد

أولاً، قم بإنشاء مشهد جديد أو استخدم مشهدًا موجودًا. تأكد من أن المشهد الخاص بك يحتوي على ضوء اتجاهي، والذي سيعمل كالشمس.

الخطوة 2: إنشاء نص دورة الليل والنهار

قم بإنشاء نص برمجي جديد بلغة C# باسم DayNightCycle وأرفقه بكائن لعبة فارغ في المشهد الخاص بك. إليك النص البرمجي الذي سيتعامل مع الدورة:

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: إضافة Skybox والإضاءة المحيطة

لتحسين التأثير البصري بشكل أكبر، يمكنك تغيير صندوق السماء والإضاءة المحيطة بناءً على الوقت من اليوم. أضف الكود التالي إلى البرنامج النصي 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 الخاصة بك يمكن أن يعزز بشكل كبير من تجربة اللاعب من خلال إنشاء عالم ديناميكي وغامر. باتباع هذا البرنامج التعليمي، يمكنك تنفيذ دورة ليل ونهار أساسية وتخصيصها لتناسب احتياجات لعبتك. سواء كنت تقوم بتطوير مغامرة في عالم مفتوح أو لعبة بقاء أو محاكاة، فإن دورة الليل والنهار يمكن أن تجعل لعبتك تنبض بالحياة.