Уроки Uniti3d - Основные понятия и компоненты.

Unity делает процесс разработки игры довольно простым, давая вам ряд понятных шагов, чтобы создать любой желаемый сценарий игры. Unity не привязан к какому то определенному игровому жанру – это “чистый холст” - на котором вы вольны создать любую желаемую игру. Основной концепцией Unity является использование Игровых Объектов (Game Object (GO)), это дает вам возможность разбить свою игру на легко управляемые объекты, которые, в свою очередь, состоят из множества компонентов (Component parts). Создавая отдельные игровые объекты и расширяя их функциональность с помощью добавления различных компонентов, вы способны бесконечно расширять и усложнять игру. У компонентов, в свою очередь, есть настройки – переменные, если хотите – с помощью который осуществляется управление ими. Изменяя эти переменные, вы будете иметь полный контроль над влиянием этого компонента на ваш объект. Давайте рассмотрим простой пример.

Возможности Unity.
Если б я хотел иметь в игре прыгающий шар, я бы начал со сферы. Ее можно создать через меню Unity (Game Object -> Create Other -> Sphere), таким образом, я создадим новый игровой объект (Game Object) с мешем сферы и компонентом Renderer, делающим его (меш) видимым. Сделав это, я могу добавить Rigidbody (Component –> Physics -> Rigidbody) - компонент, который говорит Unity использовать физический движок для этого объекта. Вместе с этим, у объекта появляется масса, сила тяжести, и возможность применять к нему различные силы, или по команде игрока, или при столкновении с другими объектами. Наша сфера теперь, при запуске игры, будет падать на землю, но как заставить ее подпрыгнуть? Это просто! У компонента collider есть свойство Physic Material (Физический Материал) – определяющий, как объект будет взаимодействовать с поверхностью других объектов. Здесь, из выпадающего списка доступных физ. материалов, мы выбираем Bouncy, и вуаля! Наш прыгающий шар готов всего за несколько кликов.

Ресурсы.
Ресурсы (Assets) – строительные/составные блоки всех проектов Unity. Игровой движок ссылается на файлы изображений, 3D моделей, звуков и т.д., которые будут использоваться, при создании игры, в качестве ресурсов (assets). Вот почему в любой папке проекта Unity, есть подкаталог, где хранятся все файлы ресурсов, с именем Assets.

Сцены.
В Unity, вы должны думать о сценах (scenes), как об игровых уровнях или областях игрового контента (например, меню). Создавая игру с множеством сцен, вы будете иметь возможность распределять время загрузки и тестировать различные части игры в отдельности.

Игровые Объекты.
Когда ресурс (asset) используется в сцене игры, он становиться Игровым Объектом (Game Object) – в терминологии Unity – особенно в скриптинге – используется термин "GameObject". Все объекты (GameObjects), изначально, имеют хотя бы один компонент(component) – Transform (Преобразование). Transform говорит движку Unity о положении (position), повороте (rotation) и масштабе (scale) объекта, описанных в X, Y, Z координатах (или в случае с масштабом, размерность). К тому же, к этому компоненту можно обратиться из скрипта, что бы установить его положение (position), поворот (rotation) или масштаб (scale). Добавляя различные компоненты к объекту, мы можем значительно расширить его функционал, для обеспечения реализации любого желаемого сценария игры.

Компоненты.
Компоненты (components) имеют различное назначение – они могут влиять на поведение, внешний вид и многие другие функции объектов в игре. ‘Прикрепляя’ ('attaching') компонент к объекту вы можете сразу же воспользоваться возможностями предоставляемые этим компонентом. Unity предоставляет множество компонентов различного назначения. Для обеспечения интерактивности различных игровых элементов, вы будите использовать скрипты, которые рассматриваются Unity как компоненты.

Скрипты.
Не смотря на то, что скрипты являются компонентами Unity, они являются важной частью разработки игр и заслуживают отдельного упоминания. В этой книге, мы будем писать наши скрипты на JavaScript, однако, имейте в виду, что Unity так же предоставляет возможность использовать для написания скриптов C# и Boo (производный от языка Python). Unity не требует от вас знание кода движка, однако вы будите использовать скрипты в каждой разрабатываемой вами игре. Писать скрипты в Unity очень просто, вы это увидите после нескольких примеров. Некоторых разработчиков может отпугнуть необходимость использования скриптов, т.к. они привыкли только к дизайну, но на протяжении книги, я постараюсь подробно и эффективно объяснить использование скриптов и их важность. Что бы писать скрипты вы будите использовать встроенный редактор скриптов. Для Mac это Unitron , а для PC - Uniscite. Версию для РС вы можете найти по следующему пути \Unity\Editor\Data\Tools\UniSciTE\ UniSciTE.exe . Внесение изменений и сохранение скрипта в редакторе, немедленно обновит скрипт в Unity. Если хотите, вы можете назначить свой собственный редактор скриптов в настройках Unity.

Префаб.
Основной концепцией Unity является использование Игровых Объектов (Game Object), но при этом есть ‘умный’ способ хранить объекты как ресурсы (assets), которые будут использованы в различных частях вашей игры, эти ресурсы могут быть заново 'порождены' или 'клонированы' в любое время. При создании сложных объектов с различными компонентами и настройками, будет эффективней создать первоначальный шаблон, из которого и будут созданы эти объекты, при этом для каждого экземпляра возможны индивидуальные настройки и изменения. Рассмотрим в качестве примера – ящик – вы создали его, настроили различные свойства, написали скрипт разрушения, и теперь хотите использовать его многократно, может быть даже в другой игре. Префаб (Prefabs –заготовка) — это один из типов ресурсов, предназначений для многократного использования. Префаб может быть вставлен в любое количество сцен и многократно в одну сцену. Когда префаб добавляется в сцену, создаётся его экземпляр. Все экземпляры являются ссылками на оригинальный префаб и фактически его клонами. Независимо от того, как много экземпляров в проекте, при изменении префаба изменяются соответственно и все его экземпляры.