Учебное пособие по фонарику для Unity

Во многих видеоиграх фонарик служит важным инструментом (или элементом игрового процесса), улучшающим впечатления игрока. Фонарик — это портативный источник света, который можно включать и выключать, обычно имитируя функциональность реальных фонариков. Его важность в играх заключается в его способности создавать напряжение, добавлять реализм и обеспечивать освещение в темноте или при слабом освещении.

Скриншот «Изоляции пришельцев»

Ниже приведено краткое руководство по настройке управляемого фонарика в Unity, который можно включать и выключать нажатием клавиши.

Настройка сцены

  • Создайте новый 3D-проект в Unity (или откройте существующий проект).
  • Импортируйте все необходимые ресурсы, например 3D-персонажа или окружающую среду, если еще этого не сделали.

Создайте центр внимания

  • Щелкните правой кнопкой мыши на панели «Иерархия» и выберите "Create Empty", чтобы создать пустой GameObject.
  • Переименуйте новый GameObject в "Flashlight."
  • Убедитесь, что в иерархии выбран игровой объект "Flashlight".
  • На панели «Инспектор» нажмите кнопку "Add Component", найдите "Light", затем нажмите на нее, чтобы добавить компонент Light в "Flashlight" GameObject, и повторите тот же шаг, чтобы добавить *h20. * компонент.
  • Настройте компонент «Свет» на нужные параметры, например, задав для параметра «Тип» значение "Spot" и настроив параметры «Диапазон», «Угол» и «Интенсивность».
  • Настройте компонент AudioSource, отрегулировав громкость, расстояние и т. д.

Эффект точечного света в сцене Unity

Прикрепите фонарик к плееру

  • Перетащите и поместите GameObject "Flashlight" на персонажа игрока на панели «Иерархия», чтобы сделать его дочерним элементом игрока.
  • Отрегулируйте положение и вращение фонарика так, чтобы он совпадал с рукой игрока или желаемым положением.

Реализация элементов управления фонариком

  • Создайте новый скрипт 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".
  • Убедитесь, что оба компонента Light и AudioSource прикреплены к тому же игровому объекту, что и скрипт "FlashlightController".
  • Назначьте свои собственные аудиоклипы звуковым переменным 'On/Off'.

Проверьте фонарик

  • Нажмите кнопку Play, чтобы войти в режим воспроизведения.
  • Перемещайте персонажа по сцене.
  • Нажмите клавишу "F", чтобы включить или выключить фонарик.

Заключение

Надеемся, что этот урок помог научиться создавать эффект фонарика в Unity. Его можно еще улучшить, добавив дополнительные функции, такие как мерцание света или регулировку угла конуса прожектора на основе ввода игрока.