البرنامج النصي لإنشاء مفتاح الضوء في الوحدة

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

لماذا استخدام البرنامج النصي تبديل الضوء؟

  • البيئات التفاعلية: يمكن لمصدر الضوء القابل للتحويل أن يجعل بيئاتك أكثر تفاعلية وديناميكية.
  • الألغاز: يمكن دمجها في آليات puzzle.
  • آلية ردود الفعل: يمكن أن تعمل الأضواء بمثابة ردود فعل، توضح للاعب أنه تم الإقرار بالإجراء.

متى تستخدمه؟

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

الإعداد وكيفية الاستخدام

  • إنشاء ضوء: في Unity، قم بإنشاء نقطة ضوء أو ضوء كشاف أو أي مصدر ضوء آخر تريده.
  • أرفق البرنامج النصي: إنشاء برنامج نصي C# جديد يسمى 'LightSwitch' وإرفاق بالمطلوب GameObject.
  • قم بتوصيل Light: اسحب مصدر light الخاص بك إلى حقل مكون Light الخاص بالبرنامج النصي في المفتش.

'LightSwitch.cs'

using UnityEngine;

public class LightSwitch : MonoBehaviour
{
    public Light lightSource; // Drag your light source here
    public bool isOn = true; // If you want the light to start as ON

    private void Start()
    {
        if (lightSource)
        {
            lightSource.enabled = isOn;
        }
    }

    public void ToggleLight()
    {
        if (lightSource)
        {
            isOn = !isOn;
            lightSource.enabled = isOn;
        }
    }
}
  • تأكد من أن لديك لاعبًا يمكن المشي عليه يحمل علامة "Player". إذا كنت قد اتبعت البرنامج التعليمي الخاص بنا Unity FPS Controller، فمن المفترض أن يكون المشغل في مكانه بالفعل، ما عليك سوى تغيير علامته إلى "Player".
  • قم بإنشاء GameObject فارغ جديد بالقرب من متناول اللاعب وقم بتسميته "LightSwitchTrigger". سيكون هذا بمثابة منطقة التفاعل لمفتاح الضوء.
  • أضف مكون a 'Box Collider' إلى GameObject "LightSwitchTrigger". اضبط حجمه وموضعه لتغطية المنطقة التي تريد أن يتمكن اللاعب من التفاعل مع مفتاح الضوء فيها. تأكد من تحديد خانة الاختيار "Is Trigger" في 'Box Collider'.

نص التفاعل:

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

'LightSwitchInteraction.cs'

using UnityEngine;

public class LightSwitchInteraction : MonoBehaviour
{
    public LightSwitch lightSwitch; // Reference to our LightSwitch script
    private bool playerInZone = false;

    private void Update()
    {
        if (playerInZone && Input.GetKeyDown(KeyCode.E)) // E key is used for interaction in this example
        {
            lightSwitch.ToggleLight();
        }
    }

    private void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            playerInZone = true;
        }
    }

    private void OnTriggerExit(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            playerInZone = false;
        }
    }
}

إعداده:

  • أرفق البرنامج النصي 'LightSwitchInteraction' بـ "LightSwitchTrigger" GameObject.
  • في Inspector، اسحب GameObject باستخدام البرنامج النصي 'LightSwitch' إلى الحقل "Light Switch" الخاص بالمكون 'LightSwitchInteraction'.

لعب اللعبة

الآن، عندما يقترب لاعبك (الذي يحمل العلامة "Player") من منطقة التفاعل، سيؤدي الضغط على المفتاح "E" إلى تشغيل الضوء أو إيقاف تشغيله. يمكنك أيضًا ضبط مفتاح التفاعل في البرنامج النصي LightSwitchInteraction عن طريق تغيير 'KeyCode.E' إلى أي مفتاح آخر مرغوب فيه.

الأسئلة الشائعة المتعلقة بالموضوع:

  • هل يمكن لهذا البرنامج النصي التعامل مع مصادر ضوء متعددة؟ : كما هو مكتوب، لا، ولكن يمكنك تعديله بسهولة لقبول قائمة كائنات Light والتكرار عبرها بطريقة 'ToggleLight' لتبديلها جميعًا مرة واحدة.
  • كيف يمكنني إضافة صوت عند تشغيل أو إيقاف تشغيل الضوء؟ : يمكنك إضافة مكون 'AudioSource' إلى GameObject وتشغيل مقطع sound بطريقة 'ToggleLight' عندما تتغير حالة الضوء.

خاتمة

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

المقالات المقترحة
برنامج تعليمي لهجوم المشاجرة ثنائي الأبعاد من أجل الوحدة
مؤشر الهدف في الوحدة
كيفية استخدام وحدة تحكم Xbox في الوحدة
كيفية إعداد جهاز التحكم بعصا التحكم للحركة في الوحدة
العد التنازلي البرنامج التعليمي للوحدة
كيفية استخدام نظام المياه HDRP الجديد في الوحدة
FPC Swimmer - أصل الوحدة الشامل للبيئات المائية الغامرة