Найти в Дзене
Flipper ЯП

продолжение Глава 1. Основные элементы программирования C# unity

Определение переменных
Начнем с простого вопроса: что такое переменная? В зависимости от точки зрения ответить на этот вопрос можно несколькими способами. В качестве аналогии переменной можно привести почтовые ящики из реальной жизни, наподобие таких В них могут храниться письма, счета, фотографии вашей тети — все что угодно. Важно то, что содержимое почтового ящика может быть разным: они могут иметь имена, хранить информацию (собственно почту), а еще их содержимое можно менять, если у вас есть ключ. Имена Важны Еще раз посмотрим на рисунке Если я попрошу вас пойти и открыть почтовый ящик, вы, скорее всего, захотите уточнить: «Какой именно?» Если бы я сказал более точно, например: «ящик Ивановых», «коричневый почтовый ящик» или «круглый почтовый ящик», то у вас было бы достаточно информации (или контекста) для выполнения моего поручения. Аналогично, создавая переменную, вы должны дать ей уникальное имя, по которому можно было бы обратиться к ней позже. Об особенностях правил
Оглавление

Определение переменных

Начнем с простого вопроса: что такое переменная? В зависимости от точки зрения ответить на этот вопрос можно несколькими способами.
  • Концептуально переменная — это мельчайшая базовая единица программирования, как атом для физического мира (умолчу о теории струн). Все начинается с переменных, и без них программы попросту не могут существовать.
  • Технически переменная — небольшой фрагмент памяти вашего компьютера, который содержит присвоенное переменной значение. Каждая переменная знает, где хранится ее информация (адрес в памяти), свое значение и тип (это могут быть, например, числа, слова или списки)
  • По сути переменная — контейнер. При необходимости вы можете самостоятельно создавать их, заполнять чем-то, перемещать, изменять содержимое и ссылаться на них. Иногда полезны даже пустые переменные.

В качестве аналогии переменной можно привести почтовые ящики из реальной жизни, наподобие таких

В них могут храниться письма, счета, фотографии вашей тети — все что угодно. Важно то, что содержимое почтового ящика может быть разным: они могут иметь имена, хранить информацию (собственно почту), а еще их содержимое можно менять, если у вас есть ключ.

Имена Важны

Еще раз посмотрим на рисунке Если я попрошу вас пойти и открыть почтовый ящик, вы, скорее всего, захотите уточнить: «Какой именно?» Если бы я сказал более точно, например: «ящик Ивановых», «коричневый почтовый ящик» или «круглый почтовый ящик», то у вас было бы достаточно информации (или контекста) для выполнения моего поручения. Аналогично, создавая переменную, вы должны дать ей уникальное имя, по которому можно было бы обратиться к ней позже. Об особенностях правильного форматирования и описательного именования мы подробнее поговорим в главе 3.

Переменные — это «коробки»

Объявляя переменную и давая ей имя, вы словно создаете пустую коробку для значения, которое хотите сохранить. Для примера возьмем следующее простое математическое равенство:

  • 2 + 9 = 11

Здесь все просто, но что, если бы мы хотели, чтобы число 9 было взято из переменной? Рассмотрим следующий блок кода:

  • myVariable = 9

Теперь вместо числа 9 мы можем использовать имя переменной myVariable везде, где требуется:

  • 2 + myVariable = 11
Если вам интересно, есть ли у переменных другие правила или ограничения, то да. О них поговорим в следующей главе, поэтому пока не торопитесь

Приведенный выше пример не является реальным кодом C#, но зато иллюстрирует возможности переменных и их применение в качестве ссылок на «коробку со значением». Далее мы начнем создавать собственные переменные, так что вперед!

Время действовать. Создаем переменную

Пожалуй, хватит теории. Создадим настоящую переменную в нашем сценарии LearningCurve.

  • 1. Дважды щелкните на сценарии LearningCurve, чтобы открыть его в Visual Studio, затем добавьте в него строки 7, 12 и 14 (пока не думайте о синтаксисе, а просто перепишите указанные строки с этого снимка экрана (рис. 2.2))
Рис. 2.2
Рис. 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).
Рис. 2.3
Рис. 2.3

Операторы Debug.Log() вывели в консоли результат вычисления простых математических выражений, которые мы заключили в круглые скобки. Как видно на снимке панели Console (рис. 2.4), выражение, в котором использовалась наша переменная, сработало так же, как и выражение с числами
Рис. 2.4
Рис. 2.4
В конце этой главы мы рассмотрим, как Unity преобразует сценарии C# в компоненты, но сначала попробуем изменить значение одной из наших переменных

Время действовать. Меняем значение переменной

Поскольку в строке 7 мы объявили переменную currentAge, значение, которое в ней хранится, можно изменить. После этого уже новое значение будет подставляться туда, где переменная используется в коде. Посмотрим, как это работает

  • 1. Остановите игру, нажав кнопку Play, если сцена все еще запущена.
  • 2. На панели Inspector измените значение параметра Current Age на 18, снова запустите сцену и посмотрите на результат на панели Console (рис. 2.5)
рис. 2.5
рис. 2.5

Первый оператор по-прежнему вывел 31, а второй — уже 19, поскольку мы изменили значение нашей переменной

Цель здесь заключалась не в прохождении синтаксиса переменных, а в демонстрации того, что переменные работают как контейнеры, которые мы один раз создаем, а затем ссылаемся на них в другом месте. Подробнее об этом поговорим в главе 3.