Полезная особенность
В скрипте TwirlEgg, строке 5, объект Capsule был найден при помощи функции GameObject.Find(). Другие два скрипта, TwirlCapsule и TwirlCylinder, не используют функцию GameObject.Find(). На самом деле, ни один скрипт вообще не имеет кода для поиска других игровых объектов, которые будут необходимы для их корректной работы. Тем не менее, они все еще работают из-за возможности использования инспектора для выполнения данной задачи по назначению объектов.
Я намеренно создал два других скрипта, чтобы продемонстрировать эту особенность перетаскивания (drag&drop) в инспектор.
Примечание:
В идеале, я бы просто создал один скрипт и использовал бы его для всех трех игровых объектов, а затем бы использовал инспектор, чтобы произвести необходимые назначения. Однако, цель данного упражнения — обучение, так что некоторые различия были созданы умышленно.
Различия в скриптах
Эти изображения показывают начальные строки двух скриптов:
- скрипт TwirlEgg
- скрипт TwirlCapsule
Далее расположено объявление переменной spin:
- В «яйце» переменная установлена на true. Один из игровых объектов следует установить для того, чтобы вращать, когда нажата кнопка Play.
- В «капсуле» переменная устанавливается на false.
Теперь для того, чтобы назначить игровые объекты переменной otherObject:
- Объект «капсула» назначается как следующий игровой объект, который будет вращаться после того, как «яйцо» закончит вращение.
Обратите внимание, что нет никаких операторов присваивания в скрипте TwirlCapsule.
Скрытая переменная против общедоступной
А почему ни одного оператора присваивания для переменной otherObject в скрипте TwirlCapsule? Потому что назначение происходит вручную в инспекторе. Это предоставляет гибкость в управлении игровым действием или в быстром создании изменений без постоянной необходимости редактировать скрипты.
Чтобы использовать эту способность инспектора для создания изменений, подразумевается, что переменная должна быть видимой в инспекторе.
- В скрипте TwirlEgg, переменная otherObject имеет видимость private, то есть является скрытой, и означает, что эта переменная не будет видимой в инспекторе.
- Нет никаких определенных сокрытых полей, это значит то, что переменная автоматически общедоступна. Переменная otherObject будет присутствовать в инспекторе.
Перетащите, чтобы создать назначение
После того, как «капсула» закончит вращение, «цилиндр» станет вращаться дальше.
Объект «цилиндр» назначается переменной otherObject простым выбором этого игрового объекта в панели «Hierarchy» и перебрасыванием его на переменную otherObject в панель «Inspector». Обратите внимание, что среда Unity отображает переменную otherObject как два разных слова «Other Object».
Ну вот и готово! Нет никакой необходимости даже ссылаться на игровой объект «цилиндр» в скрипте. Также, даже если назначение было произведено в скрипте, перетаскивание любого другого игрового объекта на переменную otherObject переопределит то, что прописано в скрипте.
Использование одного скрипта и инспектора
В этом разделе я убрал три разных скрипта из трех игровых объектов и переместил их в один скрипт «Twirl.js» .
Я также сделал переменную spin общедоступной, так что теперь эта переменная доступна в инспекторе. Это позволит выбирать любой из игровых объектов, который должен быть обозначен как первый для вращения.
- Эта переменная spin сейчас отмечена как общедоступная и отображается в инспекторе. Переменной также назначено значение false.
- Переменная otherObject является общедоступной и отображается в инспекторе.
- Теперь используется единый скрипт с именем Twirl вместо каждого игрового объекта, использующего различный скрипт.
Настройки инспектора
Это обзор компонента Twirl (скрипт) игрового объекта «яйцо». Обратите внимание, что флажок отмечен. Он переопределяет настройку false в скрипте и означает, что объект «яйцо» будет вращаться, когда нажат Play.
Когда «яйцо» прекращает вращение, тогда объект «капсула» вращается следующим, поскольку был назначен переменной otherScript.
Поздравления, теперь вы понимаете главные основы написания и работы скриптов
Что дальше?
С основными знаниями переменных, функций и принципов взаимодействия, большинство ваших страхов теперь должны будут устранены.
Дополнительное изучение
Теперь вы должны быть способны смотреть практически на любой скрипт и не дрожать так сильно. Некоторые скрипты могут быть довольно длинными, но они всего лишь переменные, функции и «синтаксис точки». Теперь вы можете разделять даже самые длинные скрипты на эти основные части.
Это базовое руководство не затронуло множество других вещей, таких как циклы, массивы и т.д., но это и не было его намерением. Между тем, вы должны иметь возможность приобщиться почти к любому учебнику по скриптам, который рассматривает многие другие основы программирования, с новой найденной в себе уверенностью.
Я планирую сделать больше
Поскольку этот сайт посвящен скриптам в среде Unity, я буду создавать множество дополнительных уроков, углубляясь дальше в предмет. Многое будет в качестве видео, также как и в качестве руководств, как это. Имейте в виду, что некоторые части будут бесплатны, некоторые будут требовать приобретения.
Источник: httpssss://bim.wikispaces.com/file/view/UnityScript_Basics_for_Noobs.pdf
Смотрите также:
Unity3D: Основы использования скриптов для новичков: Преимущественно для новичков
Unity3D: Основы использования скриптов для новичков: Преимущественно для новичков
Unity3D: Основы использования скриптов для новичков: Подробнее о переменных
Unity3D: Основы использования скриптов для новичков: Подробнее о функциях
Unity3D: Основы использования скриптов для новичков: Синтаксис точки: взаимодействие компонентов