מדריך פנס לאחדות

במשחקי וידאו רבים, פנס משמש ככלי מכריע (או אלמנט משחקי) המשפר את חוויית השחקן. פנס הוא מקור אור נייד שניתן להפעיל ולכבות, בדרך כלל מחקה את הפונקציונליות של פנסים בעולם האמיתי. חשיבותו במשחקים טמונה ביכולתו ליצור מתח, להוסיף ריאליזם ולספק תאורה בסביבות חשוכות או עמומות.

צילום מסך של בידוד חייזרים

להלן הדרכה מהירה כיצד להגדיר פנס ניתן לשליטה ב-Unity שניתן להפעיל ולכבות בלחיצת מקש.

הגדרת הסצנה

  • צור פרויקט תלת מימד חדש ב-Unity (או פתח פרויקט קיים)
  • ייבא את כל הנכסים הדרושים, כגון דמות תלת-ממד או סביבה, אם עדיין לא

צור את הזרקור

  • לחץ לחיצה ימנית בחלונית ההיררכיה ובחר "Create Empty" כדי ליצור GameObject ריק.
  • שנה את שם GameObject החדש ל "Flashlight."
  • ודא ש-"Flashlight" GameObject נבחר בהיררכיה.
  • בחלונית Inspector, לחץ על כפתור "Add Component", חפש את "Light" ואז לחץ עליו כדי להוסיף את רכיב Light ל-"Flashlight" GameObject, וחזור על אותו שלב כדי להוסיף את "AudioSource" רכיב.
  • הגדר את רכיב ה-Light להגדרות הרצויות, כגון הגדרת ה-Type ל-"Spot" והתאמת הפרמטרים Range, Angle ו-Intensity.
  • הגדר את רכיב AudioSource על ידי כוונון עוצמת הקול, המרחק וכו'.

אפקט של נקודת אור בסצנת האחדות

חבר את הפנס לנגן

  • גרור ושחרר את "Flashlight" GameObject על דמות השחקן בחלונית ההיררכיה כדי להפוך אותו לילד של השחקן.
  • התאם את המיקום והסיבוב של הפנס כך שיתיישר עם ידו של השחקן או עם המיקום הרצוי.

יישום בקרות פנס

  • צור סקריפט C# חדש על ידי לחיצה ימנית בחלונית Assets ובחירה ב-'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. ניתן לשפר אותו עוד יותר על ידי הוספת תכונות נוספות כמו הבהוב אור או התאמת זווית חרוט הזרקור בהתבסס על קלט השחקן.