مصباح يدوي تعليمي للوحدة

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

لقطة شاشة لعزلة كائن فضائي

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

إعداد المشهد

  • قم بإنشاء مشروع ثلاثي الأبعاد جديد في Unity (أو افتح مشروعًا موجودًا)
  • قم باستيراد أي أصول ضرورية، مثل الشخصية ثلاثية الأبعاد أو البيئة إذا لم تقم بذلك بعد

إنشاء دائرة الضوء

  • انقر بزر الماوس الأيمن في لوحة Hierarchy وحدد "Create Empty" لإنشاء كائن GameObject فارغ.
  • إعادة تسمية GameObject الجديد إلى "Flashlight."
  • تأكد من تحديد "Flashlight" GameObject في التسلسل الهرمي.
  • في لوحة Inspector، انقر فوق الزر "Add Component"، وابحث عن "Light" ثم انقر عليه لإضافة إضافة مكون Light إلى "Flashlight" GameObject، وكرر نفس الخطوة لإضافة "AudioSource" عنصر.
  • قم بتكوين مكون الضوء على الإعدادات المطلوبة، مثل ضبط النوع على "Spot" وضبط معلمات النطاق والزاوية والكثافة.
  • قم بتكوين مكون AudioSource عن طريق ضبط مستوى الصوت والمسافة وما إلى ذلك.

تأثير بقعة ضوء في مشهد الوحدة

قم بتوصيل المصباح إلى المشغل

  • قم بسحب وإسقاط "Flashlight" GameObject على شخصية اللاعب في لوحة Hierarchy لجعلها طفلاً للاعب.
  • اضبط موضع المصباح اليدوي وتدويره بحيث يتماشى مع يد اللاعب أو الموضع المطلوب.

تنفيذ الضوابط مصباح يدوي

  • قم بإنشاء برنامج نصي جديد لـ C# عن طريق النقر بزر الماوس الأيمن في لوحة الأصول وتحديد 'Create -> C# Script'، ثم تسميته "FlashlightController."
  • انقر نقرًا مزدوجًا فوق البرنامج النصي لفتحه في أي محرر تعليمات برمجية مفضل.
  • قم بإزالة الكود الافتراضي واستبداله بالبرنامج النصي التالي:

'FlashlightController.cs'

using UnityEngine;

public class FlashlightController : MonoBehaviour
{
    // Public variables
    public AudioClip turnOnSound;
    public AudioClip turnOffSound;

    // Private variables
    private Light flashlight;
    private AudioSource audioSource;

    private void Start()
    {
        // Get Light component in the same GameObject
        flashlight = GetComponent<Light>();

        if (flashlight == null)
        {
            Debug.LogWarning("Light component is not attached. Attach a Light component manually.");
        }
        else
        {
            flashlight.enabled = false;
        }

        // Get or add AudioSource component to the same GameObject
        audioSource = GetComponent<AudioSource>();
        if (audioSource == null)
        {
            audioSource = gameObject.AddComponent<AudioSource>();
            audioSource.playOnAwake = false;
        }
    }

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.F))
        {
            if (flashlight != null)
            {
                flashlight.enabled = !flashlight.enabled;

                // Play audio effect based on flashlight state
                if (flashlight.enabled)
                {
                    PlayAudioEffect(turnOnSound);
                }
                else
                {
                    PlayAudioEffect(turnOffSound);
                }
            }
            else
            {
                Debug.LogWarning("Cannot control flashlight as Light component is not attached.");
            }
        }
    }

    private void PlayAudioEffect(AudioClip clip)
    {
        if (clip != null)
        {
            audioSource.clip = clip;
            audioSource.Play();
        }
    }
}
  • احفظ البرنامج النصي وارجع إلى Unity.
  • أرفق البرنامج النصي "FlashlightController" بـ "Flashlight" GameObject.
  • تأكد من إرفاق كل من مكونات Light وAudioSource بنفس كائن اللعبة مثل البرنامج النصي "FlashlightController".
  • قم بتعيين مقاطع الصوت المخصصة الخاصة بك لمتغيرات الصوت 'On/Off'.

اختبار المصباح

  • اضغط على الزر Play للدخول إلى وضع التشغيل.
  • حرك الشخصية في المشهد.
  • اضغط على مفتاح "F" لتشغيل وإيقاف المصباح اليدوي.

خاتمة

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