Як створити світлофор в Unity

Цей підручник проведе вас через процес створення простої системи світлофорів Unity за допомогою C#. Ви дізнаєтесь, як налаштувати світлофори, додати логіку для керування ними та імітувати працюючу світлофорну систему.

передумови

  • Базові знання інтерфейсу Unity
  • Базове розуміння програмування C#
  • Unity встановлений на вашому комп'ютері (будь-яка остання версія)

Крок 1: Налаштування сцени

По-перше, нам потрібно налаштувати сцену в Unity з трьома вогнями (червоним, жовтим і зеленим), щоб імітувати систему світлофора.

  1. Відкрийте Unity і створіть новий проект.
  2. У вікні Hierarchy створіть три 3D об’єкти, що представляють світлофори. Ви можете використовувати Сфери для кожного світла. Перейменуйте їх на RedLight, YellowLight і GreenLight.
  3. Розмістіть їх один на одному в поданні Scene, щоб імітувати вертикальний світлофор. За потреби відрегулюйте їх положення та масштаб.
  4. To make them look like real traffic lights, assign different colors to each sphere:
    • Виберіть RedLight і змініть колір матеріалу на червоний.
    • Виберіть YellowLight і змініть колір матеріалу на жовтий.
    • Виберіть GreenLight і змініть колір матеріалу на зелений.

Крок 2: Створення сценарію світлофора

Тепер ми напишемо сценарій для керування поведінкою світлофора. Цей сценарій періодично перемикатиметься між червоним, жовтим і зеленим світлом.

  1. У папці Assets клацніть правою кнопкою миші та виберіть Create > C# Script. Назвіть його TrafficLightController.
  2. Відкрийте сценарій у бажаному редакторі коду та напишіть такий код:
using System.Collections;
using UnityEngine;

public class TrafficLightController : MonoBehaviour
{
    public GameObject redLight;
    public GameObject yellowLight;
    public GameObject greenLight;
    
    public float redLightDuration = 5f;
    public float yellowLightDuration = 2f;
    public float greenLightDuration = 5f;
    
    private void Start()
    {
        StartCoroutine(TrafficLightCycle());
    }
    
    IEnumerator TrafficLightCycle()
    {
        while (true)
        {
            // Red light on
            redLight.SetActive(true);
            yellowLight.SetActive(false);
            greenLight.SetActive(false);
            yield return new WaitForSeconds(redLightDuration);
            
            // Green light on
            redLight.SetActive(false);
            yellowLight.SetActive(false);
            greenLight.SetActive(true);
            yield return new WaitForSeconds(greenLightDuration);
            
            // Yellow light on
            redLight.SetActive(false);
            yellowLight.SetActive(true);
            greenLight.SetActive(false);
            yield return new WaitForSeconds(yellowLightDuration);
        }
    }
}

Цей сценарій визначає простий цикл, коли червоне, зелене та жовте світло вмикаються та вимикаються послідовно.

Крок 3: Призначення індикаторів для сценарію

Тепер, коли сценарій готовий, нам потрібно пов’язати світлові об’єкти зі сценарієм, щоб він знав, якими лампами керувати.

  1. Виберіть Основну камеру або створіть порожній ігровий об’єкт у сцені для зберігання сценарію. Назвіть його TrafficLightController.
  2. У Inspector натисніть Add Component і приєднайте сценарій TrafficLightController.
  3. Assign the traffic light spheres to the script:
    • Перетягніть об’єкт RedLight у поле redLight сценарію.
    • Перетягніть об’єкт YellowLight у поле yellowLight.
    • Перетягніть об’єкт GreenLight у поле greenLight.

Крок 4: Тестування системи світлофора

Тепер настав час перевірити систему світлофора та перевірити, чи все працює належним чином.

  1. Натисніть кнопку Відтворити у верхній частині редактора Unity.
  2. Спостерігайте за роботою світлофорної системи. Червоний, зелений і жовтий індикатори мають змінюватися відповідно до часових інтервалів, визначених у сценарії.

Якщо все працює, ви повинні побачити червоне світло, яке вмикається на 5 секунд, потім зелене світло на 5 секунд, а потім жовте світло на 2 секунди, повторюючись у циклі.

Крок 5: Налаштування світлофора

Ви можете легко налаштувати систему світлофора, змінивши часові інтервали для кожного світлофора. У вікні Inspector змініть поля redLightDuration, yellowLightDuration і greenLightDuration, щоб змінити тривалість увімкнення кожного індикатора.

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

Висновок

Ви успішно створили просту систему світлофорів у Unity. Дотримуючись цього підручника, ви навчилися керувати GameObjects за допомогою C# та реалізувати часовий цикл для імітації системи реального світу. Звідси ви можете розширити цей проект, додавши додаткові функції, як-от пішохідні ліхтарі, таймери зворотного відліку або складніші правила дорожнього руху.