Учебное пособие по фонарику для 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. Его можно еще улучшить, добавив дополнительные функции, такие как мерцание света или регулировку угла конуса прожектора на основе ввода игрока.

Рекомендуемые статьи
Учебное пособие по 3D-контроллеру Worm для Unity
Учебное пособие по прыжкам через стену Player 3D и 2D для Unity
Учебное пособие по контроллеру проигрывателя сверху вниз для Unity
Автомобильный контроллер для Unity
Контроллер самолета для Unity
Диалоговая система для единства
Планетарный контроллер игрока на основе твердого тела для Unity