Определение переменных
Начнем с простого вопроса: что такое переменная? В зависимости от точки зрения ответить на этот вопрос можно несколькими способами.
- Концептуально переменная — это мельчайшая базовая единица программирования, как атом для физического мира (умолчу о теории струн). Все начинается с переменных, и без них программы попросту не могут существовать.
- Технически переменная — небольшой фрагмент памяти вашего компьютера, который содержит присвоенное переменной значение. Каждая переменная знает, где хранится ее информация (адрес в памяти), свое значение и тип (это могут быть, например, числа, слова или списки)
- По сути переменная — контейнер. При необходимости вы можете самостоятельно создавать их, заполнять чем-то, перемещать, изменять содержимое и ссылаться на них. Иногда полезны даже пустые переменные.
В качестве аналогии переменной можно привести почтовые ящики из реальной жизни, наподобие таких
В них могут храниться письма, счета, фотографии вашей тети — все что угодно. Важно то, что содержимое почтового ящика может быть разным: они могут иметь имена, хранить информацию (собственно почту), а еще их содержимое можно менять, если у вас есть ключ.
Имена Важны
Еще раз посмотрим на рисунке Если я попрошу вас пойти и открыть почтовый ящик, вы, скорее всего, захотите уточнить: «Какой именно?» Если бы я сказал более точно, например: «ящик Ивановых», «коричневый почтовый ящик» или «круглый почтовый ящик», то у вас было бы достаточно информации (или контекста) для выполнения моего поручения. Аналогично, создавая переменную, вы должны дать ей уникальное имя, по которому можно было бы обратиться к ней позже. Об особенностях правильного форматирования и описательного именования мы подробнее поговорим в главе 3.
Переменные — это «коробки»
Объявляя переменную и давая ей имя, вы словно создаете пустую коробку для значения, которое хотите сохранить. Для примера возьмем следующее простое математическое равенство:
- 2 + 9 = 11
Здесь все просто, но что, если бы мы хотели, чтобы число 9 было взято из переменной? Рассмотрим следующий блок кода:
- myVariable = 9
Теперь вместо числа 9 мы можем использовать имя переменной myVariable везде, где требуется:
- 2 + myVariable = 11
Если вам интересно, есть ли у переменных другие правила или ограничения, то да. О них поговорим в следующей главе, поэтому пока не торопитесь
Приведенный выше пример не является реальным кодом C#, но зато иллюстрирует возможности переменных и их применение в качестве ссылок на «коробку со значением». Далее мы начнем создавать собственные переменные, так что вперед!
Время действовать. Создаем переменную
Пожалуй, хватит теории. Создадим настоящую переменную в нашем сценарии LearningCurve.
- 1. Дважды щелкните на сценарии LearningCurve, чтобы открыть его в Visual Studio, затем добавьте в него строки 7, 12 и 14 (пока не думайте о синтаксисе, а просто перепишите указанные строки с этого снимка экрана (рис. 2.2))
- 2. Сохраните файл, используя сочетание клавиш Сtrl+S на клавиатуре Mac или Ctrl+S на клавиатуре Windows.
Чтобы скрипты запускались в Unity, их нужно прикрепить к объекту GameObject на сцене. По умолчанию в проекте HeroBorn появились камера и направленный свет, который создает освещение сцены. Упростим задачу, прикрепив LearningCurve к камере.
- 1. Перетащите сценарий LearningCurve.cs на объект Main Camera
- 2. Выберите объект Main Camera, чтобы он появился на панели Inspector, и убедитесь, что компонент LearningCurve.cs (Script) прикреплен правильно.
- 3. Нажмите кнопку Play и посмотрите, что появится на панели Console (рис. 2.3).
Операторы Debug.Log() вывели в консоли результат вычисления простых математических выражений, которые мы заключили в круглые скобки. Как видно на снимке панели Console (рис. 2.4), выражение, в котором использовалась наша переменная, сработало так же, как и выражение с числами
В конце этой главы мы рассмотрим, как Unity преобразует сценарии C# в компоненты, но сначала попробуем изменить значение одной из наших переменных
Время действовать. Меняем значение переменной
Поскольку в строке 7 мы объявили переменную currentAge, значение, которое в ней хранится, можно изменить. После этого уже новое значение будет подставляться туда, где переменная используется в коде. Посмотрим, как это работает
- 1. Остановите игру, нажав кнопку Play, если сцена все еще запущена.
- 2. На панели Inspector измените значение параметра Current Age на 18, снова запустите сцену и посмотрите на результат на панели Console (рис. 2.5)
Первый оператор по-прежнему вывел 31, а второй — уже 19, поскольку мы изменили значение нашей переменной
Цель здесь заключалась не в прохождении синтаксиса переменных, а в демонстрации того, что переменные работают как контейнеры, которые мы один раз создаем, а затем ссылаемся на них в другом месте. Подробнее об этом поговорим в главе 3.