Переменные, которые запоминают
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 5 из 85.
Unity вызывает Update() каждый кадр, и каждый вызов начинается заново: переменная, созданная внутри метода, удаляется, когда метод завершается. Поэтому этот счётчик никогда не поднимется выше 1:
void Update()
{
int frames = 0;
frames++;
}frames++ добавляет 1 — это краткая запись frames += 1. Но на следующем кадре снова выполняется int frames = 0;, и счёт начинается заново.
Чтобы помнить значение от одного кадра до следующего, создай переменную внутри класса, но вне всех методов. Такая переменная называется полем: она существует, пока существует объект, и её может использовать каждый метод класса.
int frames = 0;
void Update()
{
frames++;
}Теперь frames продолжает считать: 1, 2, 3 и так далее — на единицу больше с каждым кадром.
Задание
ЛегкоСделай так, чтобы растение продолжало расти.
- Вырежи строку
int frames = 0;изUpdate(). - Вставь её выше
void Update(), внутрь класса, чтобыframesстало полем, которое запоминает своё значение.
Нажми «Играть»: с каждым кадром растение становится немного выше. Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
public class Grower : MonoBehaviour
{
void Update()
{
int frames = 0;
frames++;
transform.localScale = new Vector3(1, 1 + frames * 0.01f, 1);
}
}
Все уроки раздела Основы скриптинга в Unity
1Основы C# в Unity
Привет, UnityПеременныеДля дробных чисел нужна fТекст в консолиПеременные, которые запоминаютЕсли и иначеСравнение чиселПовторение: сборщик монет7Циклы и методы
Повторение с forЦиклы внутри цикловНапишите методМетоды, которые возвращают значениеМассивыПовторение: лестница10Поиск объектов
Поиск по имениТегиПоиск по типуСсылки лучше поискаNull в UnityПовторение: ближайшая монета13Проект: уворачиваемся от блоков
БегунБлоки с неба2Заставь двигаться
Размести кубДвигай каждый кадрПоворачивай каждую секундуУправляй клавишамиПовторение: веди куб5Векторы
Сложение векторовНаправленияЛокальное и мировое пространствоСкорость по диагоналиРасстояние между объектамиVector3 — это структураПовторение: пилот дрона8Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказ и скрытиеПовторение: выключатель светаПотренируйтесь самостоятельно: Песочница Unity