const int ledPin = 10; unsigned long currentPeriodMs = 1000; unsigned long previousMillis = 0; // Запоминаем время последнего переключения bool ledState = LOW; // Текущее состояние светодиода void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); Serial.println("Arduino Ready. Send a number (0-2000) to change blink period (ms)."); } void loop() { // 1. ЧАСТЬ: Обработка входящих данных (неблокирующая) if (Serial.available() > 0) { String inputString = Serial.readStringUntil('\n'); inputString...
KNL Games
Coroutines в Unity: Руководство от А до Я
В разработке игр на Unity мы часто сталкиваемся с необходимостью «подождать». Подождать 3 секунды до появления врага, плавно изменить прозрачность меню или разбить тяжелое вычисление на несколько кадров, чтобы не «фризить» игру. Для этих целей в Unity существуют Coroutine (сопрограммы). Технически, Coroutine — это метод, который может приостановить свое выполнение и вернуть управление Unity, а затем возобновить работу с того же места, где остановился. Важно помнить: Coroutine — это не потоки (Threads)...
СоПрограммы (Coroutines) в Unity: Мощный Инструмент для Асинхронности и Пошаговых Процессов
В разработке игр часто возникают задачи, которые сложно решить стандартным линейным выполнением кода. Например, анимация движения персонажа, плавное появление объектов, задержки между действиями или последовательность событий. Именно для таких сценариев в Unity существуют СоПрограммы (Coroutines) — мощный инструмент, позволяющий управлять асинхронными операциями и пошаговыми процессами. В своей основе, сопрограмма — это функция, выполнение которой может быть приостановлено и возобновлено. В отличие...
Процедурная генерация уровней в Unity: от теории к практике
Создание уровней вручную — процесс трудоемкий. Если ваша игра подразумевает сотни комнат или бесконечные лабиринты, на помощь приходит процедурная генерация. В этой статье мы разберем, как подходить к генерации уровней в Unity, используя архитектурные подходы. Это метод создания контента (уровней, текстур, моделей) с помощью алгоритмов, а не путем ручного размещения объектов в редакторе. Главная цель — создать интересный опыт, который не повторяется от сессии к сессии. Генерация уровня обычно делится...
