Unity3D: Основы использования скриптов для новичков: Подробнее о переменных

Переменные и свойства компонентов Unity3D

Игровые объекты, которые вы создаете, будут иметь определенные свойства, создающие из игровых объектов то, чем они являются. Когда вы добавляете компонент к игровому объекту, то вы изменяете или дополняете его поведение. Это означает, конечно же, что определенная информация, добавляемая конкретным компонентом, добавляется к игровому объекту, должна быть сохранена где-то внутри компонента. Такая информация или данные сохраняются в переменных.

Переменные становятся свойствами компонента

Это настройка скрипта Soldier Controller (SoldierController.js)

  1. Слева находятся свойства компонента, представленные в окне Inspector среды разработки Unity.
  2. Справа — скрипт в редакторе скиптов Unitron.

Начинайте имя переменной со знаков нижнего регистра

Как видите, первая буква имени каждой переменной начинается со строчной буквы.

Сложносоставные имена переменных

  1. Имена переменных могут быть в длину только одного слова, без пробелов. Поэтому, если вы желаете сделать имена переменных, которые бы были больше одного слова в длину, то нужно, чтобы вы сжали все слова вместе в своем скрипте, например runSpeed. Имя начинается с маленькой буквы, а каждое дополнительное слово начинается с большой буквы.
  2. Unity выполняет немного магии и превращает runSpeed в имя свойства Run Speed.

  1. В скрипте значение равно 3.07
  2. В инспекторе значение равно 4.53

Что-то было сделано не правильно? Нет, все правильно. Значения, которые вы назначаете переменным в скриптах, считаются значениями по умолчанию. Вы можете поправить значения в окне инспектора для получения более приемлемого поведения игрового объекта. Кроме того, такие поправки, устанавливаемые вами, сохраняются, означая, что вам не нужно будет постоянно вносить изменения в свой скрипт.

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

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

Вы можете сбросить значения в инспекторе

Чтобы обнулить значения в окне инспектора на первичные значения в скрипте:

  1. Нажмите на шестеренку;
  2. Нажмите Reset

Такие действия изменят значения свойств в инспекторе на первоначальные, определенные в скрипте.

Имена переменных и слово «type»

Как и в примере с почтовым ящиком, где я давал раннее представление о том, какие различные типы вещей могут находиться в почтовом ящике, переменные также могут содержать различные типы (прим. ред. — types) данных. Они могут содержать все что угодно, от простых чисел, таких как число 3, до целых игровых объектов и префабов.

Чтобы добавить переменные в скрипт, существует некоторая простая грамматика, которую вы должны усвоить.

Объявление переменных в скрипте

Каждая переменная, которую вы хотите использовать в скрипте, должна быть объявлена в разделе деклараций. Что это значит? Укажите Unity то, что вы хотите создать так, чтобы система Unity знала, что это такое, когда вы будете использовать это в своем скрипте. Взгляните на строчку 4.

Я создал переменную с именем easyName. Справа перед ней находится ключевое слово var, которое, конечно же, является аббревиатурой слова "variable". Помещая var, мы указываем Unity то, что создаем новую переменную.

Следовательно, перед тем как Unity сможет использовать любую переменную, которую мы хотим, мы должны указать Unity сначала об этом. Указание Unity переменной называется объявлением переменной, которое вы можете сделать только один раз. Теперь переменная easyName может быть использована где угодно в скрипте.

Обратите внимание, что объявление заканчивается точкой с запятой. Все объявления должны заканчиваться точкой с запятой, иначе, Unity не сможет понять, где заканчивается выражение, а где начинается новое. Так же, как использование точки в конце предложения. Вы когда-нибудь пробовали прочитать целую группу предложений без каких-либо точек? Может быть не просто. Вы бы поняли это, поскольку умны. Но Unity не может, потому что является всего лишь скромной компьютерной программой.

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

easyName = 10;

То это не означает, что переменная easyName равна 10. Это означает то, что переменной easyName присваивается значение 10.

Я расскажу о равенстве в следующем уроке.

Основные типы переменных

Вышеперечисленные типы являются самыми распространенными типами переменных практически в любом языке программирования.

Слово «Type» для переменной

Взгляните на строку 6. У этого выражения объявления что-то добавлено в конце. Что это за слово int?

Хорошо, взгляните на таблицу выше и посмотрите, что это слово означает integer.

Я создал переменную с именем easyNameTyped, за которой следует двоеточие, а затем int.

В системе скриптов Unity, вот как вы указываете Unity о том, что хотите, чтобы переменная содержала конкретный тип данных. Используйте двоеточие, за которым следует тип. Я специально указал Unity, что эта переменная должна будет содержать целочисленное значение, целое число.

Хорошо, и так вы, вероятно, хотите знать, почему другая переменная easyName не определила конкретный тип. Unity позволяет вам быть ленивым и не писать столько много кода, в то время как этого требуют другие языки программирования.

При написании скриптов, Unity обычно выясняет, какого типа будет переменная по присваиваемому ей значению. Читайте дальше.

Приведение типов

Вернемся к строке 4, а также к строке 5.

Когда я объявил переменную easyName, то не указал ее тип, и Unity на самом деле не заботится об этом, потому что easyName не используется в скрипте вообще, а только объявляется, что является переменной. В строке 5 easyName используется в первый раз и ей назначается целочисленное значение, число 10. Теперь Unity знает, какой тип значений для переменной easyName будет позволено сохранять.

Вот как работает приведение типов. Тип определяется посредством того, как он используется первый раз в скрипте. С этого момента, когда игра работает, любое число, которое скрипт помещает в переменную easyName, даже десятичные числа, такие как 2.3, Unity сотрет часть со значением .3 и допустит только целочисленную часть значения, в этом случае 2.

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

Способ заставить вас указывать типы — добавить #pragma strict в скрипт в качестве самой первой строки.

Примечание: Каждый раз, когда переменная появляется в скрипте после того, как она была объявлена при помощи слова var, вот такое использование данный переменной, как в строке 5.

Тип float

Строка 15 является переменной с типом float. Это означает, что переменная будет сохранять десятичное число, которое содержит десятичную точку.

В данном примере я указал переменную withFloatTyped как десятичную в разделе объявлений, поэтому Unity знает наверняка, что может содержать переменная. Я также назначил переменной значение в разделе объявлений.

Если бы я просто назначил переменной значение 7, то для Unity оно было бы фактически равно 7.0 .

Тип boolean

Что это еще за тип boolean?

В окне инспектора Unity данный тип представлен в виде переключателя. Поэтому переменная типа boolean может иметь значение либо true либо false, отмечено или не отмечено.

Мы рассмотрим применение значений true и false позднее, когда доберемся до принятия решений в скриптах.

Тип String

Строка 26

Обратите внимание, что определяя переменную simpleStringTyped как переменную типа String, слово String начинается с большой буквы, а не с маленькой. Все потому что тип String является классом. Другие типы, int, float и boolean просто встроены как часть системы скриптового языка Unity.

http://unity3d.com/support/documentation/ScriptReference/String.html

Имена всех классов начинаются с большой буквы. Мы ознакомимся еще с объявлением переменных в качестве типов-классов позже, с такими как класс Transform, например.

Заключайте символы в двойные кавычки, чтобы сформировать строку из них.

Общедоступные переменные

Переменные, которые я создал, являются общедоступными переменными, это означает то, что значения, которые содержатся в них, — доступны из других скриптов. Они также могут отображаться в окне инспектора Unity. Только одно замечание было к строке 4. Я не объявил тип для переменной easyName, поэтому система Unity не смогла добавить ее в инспектор. Unity не имеет понятия, какой тип переменной добавить, поэтому и не добавляет вообще.

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

Скрытые переменные

Я немного изменил строку 12. Я добавил слово private перед var. Оно означает то, что переменная withIntTyped не доступна для других скриптов. Ее может использовать только скрипт TeachMe.

Скрытые переменные не отображаются в окне инспектора Unity

Как видите, указание переменной withIntTyped скрытой, не позволяет ей отображаться в инспекторе.

Вывод

Кажется, что много информации, которую нужно знать о переменных. Однако, это всего лишь несколько простых шагов:

  1. Нужно или нет, чтобы переменная была общедоступной или скрытой?
  2. Писать слово var.
  3. Создавать имя для переменной.
  4. Указывать тип.
  5. Следует ли назначать значение сразу или позже в скрипте или инспекторе?
  6. Закрывать переменную точкой с запятой.

Источник: https://bim.wikispaces.com/file/view/UnityScript_Basics_for_Noobs.pdf

Смотрите также:

Unity3D: Основы использования скриптов для новичков: Преимущественно для новичков


Unity3D: Основы использования скриптов для новичков: Преимущественно для новичков


Unity3D: Основы использования скриптов для новичков: Подробнее о функциях


Unity3D: Основы использования скриптов для новичков: Решения, решения, всегда приходится принимать решения


Unity3D: Основы использования скриптов для новичков: Синтаксис точки: взаимодействие компонентов


Unity3D: Основы использования скриптов для новичков: Назначение при помощи инспектора

Комментировать

Почта не публикуется.Обязательные поля отмечены *