Підручник з ліхтариком для Unity

У багатьох відеоіграх ліхтарик є важливим інструментом (або елементом ігрового процесу), який покращує досвід гравця. Ліхтарик – це портативне джерело світла, яке можна вмикати та вимикати, зазвичай імітуючи функції реальних ліхтариків. Його важливість в іграх полягає в його здатності створювати напругу, додавати реалізму та забезпечувати освітлення в темному або слабо освітленому середовищі.

Знімок екрана Alien Isolation

Нижче наведено короткий посібник про те, як налаштувати керований ліхтарик у Unity, який можна вмикати та вимикати натисканням клавіші.

Налаштування сцени

  • Створіть новий 3D-проект у Unity (або відкрийте існуючий проект)
  • Імпортуйте будь-які необхідні ресурси, як-от 3D-персонаж або середовище, якщо цього ще не зробили

Створіть центр уваги

  • Клацніть правою кнопкою миші на панелі «Ієрархія» та виберіть "Create Empty", щоб створити порожній GameObject.
  • Перейменуйте новий GameObject на "Flashlight."
  • Переконайтеся, що "Flashlight" GameObject вибрано в ієрархії.
  • На панелі інспектора натисніть кнопку "Add Component", знайдіть "Light", потім натисніть на нього, щоб додати компонент Light до "Flashlight" GameObject, і повторіть той самий крок, щоб додати "AudioSource" компонент.
  • Налаштуйте компонент «Світло» на потрібні параметри, наприклад установіть «Тип» на "Spot" і налаштуйте параметри «Диапазон», «Кут» і «Інтенсивність».
  • Налаштуйте компонент AudioSource, відрегулювавши гучність, відстань тощо.

Ефект прожектора в сцені Unity

Прикріпіть ліхтарик до плеєра

  • Перетягніть і опустіть "Flashlight" GameObject на персонаж гравця на панелі «Ієрархія», щоб зробити його дочірнім гравцем.
  • Відрегулюйте положення та обертання ліхтарика так, щоб він вирівнявся з рукою гравця або в бажаному положенні.

Впровадити елементи керування ліхтариком

  • Створіть новий сценарій 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".
  • Призначте власні аудіокліпи змінним звуку turn 'On/Off'.

Перевірте ліхтарик

  • Натисніть кнопку Play, щоб увійти в режим відтворення.
  • Переміщайте персонажа в Сцені.
  • Натисніть клавішу "F", щоб увімкнути або вимкнути ліхтарик.

Висновок

Сподіваємось, цей посібник допоміг навчитися створювати ефект прожекторного ліхтарика в Unity. Його можна додатково покращити, додавши додаткові функції, як-от мерехтіння світла або налаштувавши кут конуса прожектора на основі введення гравця.