كيفية إنشاء إشارة مرور في Unity

سيرشدك هذا البرنامج التعليمي خلال عملية إنشاء نظام إشارات مرور بسيط في Unity باستخدام C#. ستتعلم كيفية إعداد إشارات المرور وإضافة المنطق للتحكم فيها ومحاكاة نظام إشارات المرور العامل.

المتطلبات الأساسية

  • المعرفة الأساسية بواجهة Unity
  • فهم أساسي لبرمجة C#
  • Unity تم تثبيته على جهاز الكمبيوتر الخاص بك (أي إصدار حديث)

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

أولاً، نحتاج إلى إعداد المشهد في Unity بثلاثة أضواء (أحمر، وأصفر، وأخضر) لمحاكاة نظام إشارات المرور.

  1. افتح Unity وأنشئ مشروعًا جديدًا.
  2. في نافذة Hierarchy، أنشئ ثلاثة كائنات ثلاثية الأبعاد تمثل إشارات المرور. يمكنك استخدام Spheres لكل إشارة. قم بإعادة تسميتها إلى RedLight وYellowLight وGreenLight.
  3. ضعهما فوق بعضهما البعض في عرض Scene لمحاكاة إشارة مرور عمودية. اضبط موضعهما ومقياسهما حسب الحاجة.
  4. To make them look like real traffic lights, assign different colors to each sphere:
    • حدد RedLight وقم بتغيير لون المادة إلى اللون الأحمر.
    • حدد YellowLight وقم بتغيير لون المادة إلى الأصفر.
    • حدد GreenLight وقم بتغيير لون المادة إلى اللون الأخضر.

الخطوة 2: إنشاء نص إشارة المرور

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

  1. في المجلد Assets، انقر بزر الماوس الأيمن وحدد Create > C# Script. أطلق عليه اسم TrafficLightController.
  2. افتح البرنامج النصي في محرر الكود المفضل لديك واكتب الكود التالي:
using System.Collections;
using UnityEngine;

public class TrafficLightController : MonoBehaviour
{
    public GameObject redLight;
    public GameObject yellowLight;
    public GameObject greenLight;
    
    public float redLightDuration = 5f;
    public float yellowLightDuration = 2f;
    public float greenLightDuration = 5f;
    
    private void Start()
    {
        StartCoroutine(TrafficLightCycle());
    }
    
    IEnumerator TrafficLightCycle()
    {
        while (true)
        {
            // Red light on
            redLight.SetActive(true);
            yellowLight.SetActive(false);
            greenLight.SetActive(false);
            yield return new WaitForSeconds(redLightDuration);
            
            // Green light on
            redLight.SetActive(false);
            yellowLight.SetActive(false);
            greenLight.SetActive(true);
            yield return new WaitForSeconds(greenLightDuration);
            
            // Yellow light on
            redLight.SetActive(false);
            yellowLight.SetActive(true);
            greenLight.SetActive(false);
            yield return new WaitForSeconds(yellowLightDuration);
        }
    }
}

يقوم هذا البرنامج النصي بتعريف دورة بسيطة حيث يتم تشغيل وإيقاف الأضواء الحمراء والخضراء والصفراء بالتسلسل.

الخطوة 3: تعيين الأضواء للنص

الآن بعد أن أصبح البرنامج النصي جاهزًا، نحتاج إلى ربط كائنات الإضاءة بالبرنامج النصي حتى يعرف الأضواء التي يجب التحكم فيها.

  1. حدد الكاميرا الرئيسية أو قم بإنشاء كائن لعبة فارغ في المشهد لاحتواء البرنامج النصي. قم بتسميته TrafficLightController.
  2. في Inspector، انقر فوق Add Component وأرفق البرنامج النصي TrafficLightController.
  3. Assign the traffic light spheres to the script:
    • اسحب الكائن RedLight إلى الحقل redLight في البرنامج النصي.
    • اسحب الكائن YellowLight إلى الحقل yellowLight.
    • اسحب الكائن GreenLight إلى الحقل greenLight.

الخطوة 4: اختبار نظام إشارات المرور

الآن، حان الوقت لاختبار نظام إشارات المرور ومعرفة ما إذا كان كل شيء يعمل كما هو متوقع.

  1. اضغط على زر Play في الجزء العلوي من المحرر Unity.
  2. راقب نظام إشارات المرور أثناء عمله. يجب أن تعمل الأضواء الحمراء والخضراء والصفراء وفقًا للفواصل الزمنية التي حددتها في البرنامج النصي.

إذا كان كل شيء يعمل، يجب أن ترى الضوء الأحمر يضيء لمدة 5 ثوانٍ، يليه الضوء الأخضر لمدة 5 ثوانٍ، ثم الضوء الأصفر لمدة ثانيتين، ويتكرر ذلك في حلقة مفرغة.

الخطوة 5: تخصيص إشارة المرور

يمكنك تخصيص نظام إشارات المرور بسهولة عن طريق تغيير الفواصل الزمنية لكل إشارة. في نافذة Inspector، عدّل الحقول redLightDuration وyellowLightDuration وgreenLightDuration لتغيير مدة بقاء كل إشارة مضاءة.

على سبيل المثال، يمكنك جعل الضوء الأحمر يظل مضاءً لفترة أطول لمحاكاة تقاطع مزدحم أو ضبط مدة الضوء الأصفر لتحقيق انتقال أسرع.

خاتمة

لقد نجحت في إنشاء نظام إشارات مرور بسيط في Unity. باتباع هذا البرنامج التعليمي، تعلمت كيفية التحكم في GameObjects باستخدام C# وتنفيذ حلقة زمنية لمحاكاة نظام في العالم الحقيقي. من هنا، يمكنك التوسع في هذا المشروع عن طريق إضافة المزيد من الميزات مثل إشارات المشاة أو مؤقتات العد التنازلي أو قواعد المرور الأكثر تعقيدًا.