Мануал по юнити на русском

Используйте редактор Unity для создания 2D- и 3D-игр, приложений и приложений. Загрузите редактор на unity.com.

Руководство пользователя Unity поможет вам научиться пользоваться редактором Unity и связанными с ним службами. Вы можете прочитать его от начала до конца или использовать в качестве справочного материала.

Если вы впервые используете Unity, ознакомьтесь с вводной документацией по Работе с Unity и см. Unity Learn.

Новое

  • Функции, представленные в технологическом цикле 2020 года: Что нового в 2020 году
  • Обновление проектов Unity из более старых версий Unity: Руководство по обновлению

Пакеты

  • Подробнее о пакетах: Работа с диспетчером пакетов
  • Поиск документации по конкретному пакету: Проверенные пакетыКогда пакет проходит тестирование цикла выпуска для конкретной версии Unity, она получает обозначение Verified For. Это означает, что эти пакеты гарантированно будут работать с указанной версией Unity.
    См. в Словарь
    и Пакеты предварительной версииПакет предварительной версии находится в разработке и еще не готов к производству. Предварительный просмотр пакета может находиться на любом этапе разработки, от начального до почти готового.
    См. в Словарь
  • Узнайте, как создать пользовательский пакет: Создание пользовательских пакетов

Разделы руководства пользователя Unity

Main.UnityOverview

Работа в Unity

Полное введение в редактор Unity.

Main.Unity2D

Unity 2D

Все 2D-функции редактора Unity, включая игровой процесс, спрайтыдвухмерные графические объекты. Если вы привыкли работать в 3D, спрайты — это, по сути, просто стандартные текстуры, но есть специальные приемы комбинирования текстур спрайтов и управления ими для повышения эффективности и удобства во время разработки. Дополнительная информация
См. в Словарь
и физика.

Main.Graphics

Графика

Визуальные аспекты редактора Unity, включая камерыкомпонент, который создает изображение определенной точки обзора в вашей сцене. Вывод либо рисуется на экране, либо фиксируется в виде текстуры. Дополнительная информация
См. в Словарь
и освещение.

Main.PhysicsSection

Физика

Моделирование трехмерного движения, массы, гравитации и collisionsСтолкновение происходит, когда физический движок обнаруживает, что коллайдеры двух GameObject соприкасаются или перекрываются, когда хотя бы один из них имеет компонент Rigidbody и находится в движении. More info
See in Словарь
.

Main.UNet

Сеть

Как реализовать мультиплеер и сеть.

Main.ScriptingSection

Скриптинг

Программирование игр с помощью сценариев в редакторе Unity.

Main.Audio

Аудио

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

Main.AnimationSection

Анимация

Анимация в редакторе Unity.

Main.UISystem

UI

Инструментарий пользовательского интерфейса, доступный в редакторе Unity..

Main.Navigation

Навигация

Навигация в редакторе Unity, включая ИИ и поиск пути.

Main.ContributingToUnity

Вклад в Unity

Предлагайте изменения в исходном коде редактора Unity.

Main.PlatformSpecific

Спецификация платформ

Информация о платформах, для которых вы можете создать свое приложение.

Main.LegacyTopics

Устаревшие темы

Полезно, если вы поддерживаете устаревшие проекты.

Дополнительные источники информации

  • Ответы Unity или Форумы Unity — здесь вы можете задавать вопросы и искать ответы.
  • База знаний Unity — сборник ответов на вопросы, заданные службам поддержки Unity.
  • Unity Learn — пошаговое видео и письменные руководства по использованию редактора Unity.
  • База знаний Unity Ads — руководство по включению рекламы в игру.
  • Справка Asset Store — справка по Asset МагазинРасширяющаяся библиотека бесплатных и коммерческих ресурсов, созданных Unity и членами сообщества. Предлагает широкий спектр ресурсов, от текстур, моделей и анимации до целых примеров проектов, руководств и расширений редактора. Подробнее
    См. в Словарь
    обмен контентом.

Известные вопросы

Функция работает не так, как вы ожидаете? Возможно, это существующая известная проблема. Проверьте с помощью системы отслеживания ошибок на странице issuetracker.unity3d.com.

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

Содержание

  1. Вступление
  2. Почему Unity?
  3. Если вы хотите делать игры
  4. Если вы хотите прототипировать пользовательский опыт
  5. Окно редактора Unity
  6. Объекты Unity Game
  7. Что такое GameObjects
  8. Создание иерархии
  9. Встроенные компоненты Unity
  10. Компонентная модель актера
  11. Ключевые встроенные компоненты
  12. Создание пользовательских компонентов
  13. Структура моноповедения
  14. Ключевые функции
  15. Переменные инспектора
  16. Принятие пользовательского ввода
  17. Управление игровыми объектами
  18. Трансформации
  19. Создание новых игровых объектов
  20. Доступ к другим игровым объектам и компонентам
  21. Доступ через переменную инспектора
  22. Доступ через теги
  23. Доступ через преобразование
  24. Доступ через SendMessage
  25. Raycasting
  26. Обнаружение столкновений
  27. Расширенные возможности
  28. Создание графического интерфейса
  29. Расширение редактора Unity
  30. Анимация
  31. Материалы и PBR
  32. Совет новичкам по Unity
  33. Хорошие ресурсы для разработки игр в Unity

Вступление

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

Почему Unity?

Если вы хотите делать игры

Когда дело доходит до разработки инди-игр, вариантов действительно очень мало. Если вы хотите создавать игры, есть три основных варианта: Unreal, Unity или GameMaker.

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

В Unity есть множество очень успешных игр, таких как Escape from Tarkov (FPS), Monument Valley (Puzzler) и This War of Mine (Стратегия / Выживание).

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

Если вы хотите прототипировать пользовательский опыт

Поскольку Unity — это всего лишь движок с кучей физики, анимации и 3D-рендеринга в реальном времени, это также отличное место для создания полноценных интерактивных прототипов для исследований UX.

Unity полностью поддерживает VR и AR и, следовательно, может стать отличным инструментом для изучения архитектуры, автоматизации и моделирования с помощью клиентов.

Окно редактора Unity

Окно редактора разделено на несколько разделов. Мы расскажем об этом очень кратко, так как будем постоянно к нему обращаться на протяжении всей статьи. Если вы уже знакомы с этим, пропустите мимо!

Просмотр сцены: позволяет размещать и перемещать игровые объекты в сцене.

Просмотр игры: предварительный просмотр того, как игрок будет видеть сцену с камеры.

Инспектор: предоставьте подробную информацию о выбранном GameObject в сцене.

Assets / Project: здесь хранятся все префабы, текстуры, модели, скрипты и т. Д.

Иерархия: позволяет вложение и структурирование игровых объектов внутри сцены.

Теперь мы готовы начать!

Объекты Unity Game

Что такое GameObjects

GameObjects — это основной строительный блок всего игрового движка Unity. Название почти выдает это:Все, что вы помещаете в сцену в Unity, должно быть заключено в «игровой объект».

Если у вас есть опыт веб-дизайна, вы можете думать о GameObjects как о элементах <div>! Чрезвычайно скучные контейнеры, но они легко расширяемы для создания сложной функциональности или визуальных эффектов.

Я поднял это прямо из окна редактора Unity, чтобы подчеркнуть это.

Буквально все, от эффектов частиц, камер, игроков, элементов пользовательского интерфейса… (список продолжается) — это GameObject.

Создание иерархии

Как и <div> в веб-разработке, GameObject также является контейнером. Подобно тому, как вы вкладываете <div> для создания разнообразных и желаемых макетов или абстракций, вы можете сделать то же самое с игровыми объектами.Логика вложения игровых объектов во многом такая же, как и при веб-разработке, я приведу несколько примеров …

Беспорядок и эффективность

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

Unity Translation: вы создаете клон Minecraft и у вас есть множество блоков в сцене, вам нужно добавлять и удалять «куски» блоков из сцены по соображениям производительности. Таким образом, их родительство с пустым GameObject для каждого фрагмента имеет смысл, поскольку удаление родительского фрагмента удаляет все дочерние блоки.

Позиционирование

Веб-аналогия: вы хотите сохранить положение содержимого «относительно» контейнера, а не веб-страницы.

Unity Translation: вы создали группу дронов-помощников, которые летают вокруг игрока. На самом деле вы бы не стали писать код, чтобы они гонялись за игроком, поэтому вместо этого вы создаете их как дочерние элементы игрового объекта player.

Встроенные компоненты Unity

Компонентная модель актера

Сами по себе GameObjects довольно бесполезны — как мы видели, они в значительной степени просто контейнеры. Чтобы добавить к ним функциональность, мы должны добавить компоненты, которые по сути представляют собой сценарии, написанные на C # или Javascript.

Unity работает на основе модели компонентов акторов, проще говоря, GameObjects — это актеры, а компоненты — ваши скрипты.

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

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

Ключевые встроенные компоненты

Думаю, пришло время привести несколько примеров встроенных компонентов, предоставляемых движком Unity Games.

  • MeshFilter: позволяет назначать материалы для 3D-сетки GameObject.
  • MeshRender: позволяет назначать материалы 3D-сетке.
  • [Коробка | Mesh] Collider: позволяет обнаруживать GameObject во время столкновений.
  • Rigidbody: позволяет реалистичному физическому моделированию воздействовать на GameObjects с 3D-сетками и запускать события обнаружения на коллайдерах боксов.
  • Свет: освещает части вашей сцены.
  • Камера: определяет область просмотра игрока, которая будет прикреплена к GameObject.
  • Различные компоненты холста пользовательского интерфейса для отображения графического интерфейса пользователя

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

Просто нажмите на раздел справки, документация в целом довольно хороша

Создание пользовательских компонентов

Встроенные компоненты в первую очередь управляют физикой и визуальными эффектами, но для того, чтобы действительно создать игру, вам нужно будет принимать вводимые пользователем данные и манипулировать этими стандартными компонентами, а также самими игровыми объектами.Чтобы начать создание компонентов, перейдите в нужный GameObject> Добавить компонент> введите имя вашего нового компонента в строке поиска> новый скрипт (c #).

В качестве общей рекомендации я бы не советовал использовать Javascript в Unity. Он не обновлялся со всеми замечательными вещами, которые поставлялись с ES6, а большая часть более продвинутых вещей основана на материалах C #, перенесенных на Javascript … По моему опыту, это просто становится одним гигантским обходным решением.

Структура моноповедения

Ключевые функции

Все компоненты наследуются от класса MonoBehaviour. Он включает в себя несколько стандартных методов, главное:

  • void Start (), который вызывается всякий раз, когда объект, содержащий скрипт, создается в сцене. Это полезно в любое время, когда мы хотим выполнить некоторый код инициализации, например. установить экипировку игрока после того, как он появится в матче.
  • void Update (), который вызывается каждый кадр. Это то место, где будет выполняться основная часть кода, включающего пользовательский ввод, обновляющего различные свойства, такие как движение игрока в сцене.

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

Часто мы хотим сделать компоненты максимально гибкими. Например, все оружие может иметь разный урон, скорострельность, has_sight и т. Д. Хотя все оружие, по сути, одно и то же, мы можем захотеть иметь возможность быстро создавать различные вариации с помощью редактора единства.

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

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

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

Обратите внимание, как мы можем сделать переменные с разными уровнями доступа, частными, общедоступными или общедоступными, но не отображаемыми в окне инспектора.

Принятие пользовательского ввода

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

  • Input.GetKey (KeyCode.W) Возвращает True W, удерживается клавиша W
  • Input.GetKeyDown (KeyCode.W) Возвращает True при первом нажатии клавиши W.
  • Input.GetAxis («Вертикальный»), Input.GetAxis («Горизонтальный») Возвращает значение между -1,1 перемещения мыши при вводе.

Управление игровыми объектами

Когда у нас есть пользовательский ввод, мы хотим, чтобы GameObject в нашей сцене отреагировал. Мы можем рассмотреть несколько типов ответов:

  • Перевод, вращение, масштаб
  • Создать новые GameObjects
  • Отправка сообщений существующим GameObject / компонентам

Трансформации

Все GameObjects имеют свойство transform, которое позволяет выполнять различные полезные манипуляции с текущим игровым объектом.

Вышеупомянутые методы довольно понятны , просто обратите внимание, что мы используем gameObject в нижнем регистре для ссылки на GameObject, которому принадлежит этот конкретный экземпляр компонента.

В общем, рекомендуется использовать локальное [Положение, Вращение], а не глобальное положение / поворот объекта. Обычно это упрощает перемещение объектов разумным образом, поскольку ось локального пространства будет ориентирована и центрирована на родительском объекте, а не на мировом начале координат и направлениях x, y, z.

Преимущества локального пространства станут немного более очевидными с диаграммой!

Если вам нужно преобразовать между локальным и мировым пространством (что часто бывает), вы можете использовать следующее:

Как вы понимаете, за этим стоит довольно простая линейная алгебра, на которую намекает «Обратный» в имени метода.

Создание новых игровых объектов

Поскольку GameObjects — это в основном все в вашей сцене, вы можете иметь возможность генерировать их на лету. Например, если у вашего игрока есть какая-то пусковая установка для снарядов, вы можете захотеть создавать снаряды на лету, у которых есть собственная инкапсулированная логика для полета, нанесения урона и т. Д.

Сначала нам нужно ввести понятие префаба . Мы можем создать их, просто перетащив любой GameObject в иерархии сцены в папку с ресурсами.

Как выглядит префаб на вкладке Asset

По сути, это хранит шаблон объекта, который только что был в нашей сцене, со всеми теми же конфигурациями.

Пример пользовательского объекта-кирпича, который используется для динамического создания кубиков Lego в сцене, к нему прикреплен набор компонентов с различными значениями по умолчанию.

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

Затем мы можем выполнить «создание экземпляра» префаба и манипулировать им в желаемом месте сцены и установить необходимые родительские отношения.

Доступ к другим игровым объектам и компонентам

Часто нам нужно взаимодействовать с другими GameObject, а также с их ассоциированными компонентами. Если у вас есть ссылка на игровой объект, это довольно просто.ComponentName comp = some_game_object.GetComponent <ComponentName> ();

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

Доступ через переменную инспектора

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

Доступ через теги

Мы можем пометить GameObjects или prefabs через инспектор, а затем использовать функции поиска игровых объектов, чтобы найти ссылки на них.

Это просто делается, как показано ниже.GameObject some_game_object = GameObject.FindGameObjectWithTag («Кирпич»);

Доступ через преобразование

Если мы хотим получить доступ к компонентам в каком-либо родительском объекте, мы можем легко сделать это с помощью атрибута transform.ComponentName comp = gameObject.transform.parent.GetComponent <ComponentName> ();

Доступ через SendMessage

В качестве альтернативы, если мы хотим отправить сообщение многим другим компонентам или хотим отправить сообщение объекту, который находится далеко вверх по вложенной иерархии, мы можем использовать функции отправки сообщения, которые принимают имя функции, за которым следуют аргументы.gameObject.SendMessage («MethodName», параметры); // Трансляция сообщениеgameObject.SendMessageUpwards («ИмяМетода», параметры); // Получено только компонентами, вложенными выше.

Raycasting

Возможно, вы слышали об этом раньше, когда люди сравнивают игры FPS, основанные на «физике» или «на основе лучей». Raycasting по сути похож на лазерную указку, которая при соприкосновении с «коллайдером» или «твердым телом» возвращает «попадание» и передает детали объекта.

Есть два сценария, в которых это может пригодиться (вероятно, их гораздо больше):

  1. Если вы разрабатываете систему оружия для игры, вы можете использовать raycasting для обнаружения попаданий и даже настроить длину луча, чтобы предметы ближнего боя «поражали» только на коротких дистанциях.
  2. Создайте луч от указателя мыши к точке в трехмерном пространстве, то есть если вы хотите, чтобы пользователь мог выбирать юниты с помощью мыши в стратегической игре.

Пример 2, подробно описанный выше

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

Обнаружение столкновений

Ранее мы упоминали компоненты Collider и Rigidbody, которые можно добавить к объекту. Правило для столкновений состоит в том, что один объект в столкновении должен иметь твердое тело, а другой — коллайдер (или оба имеют оба компонента). Обратите внимание, что при использовании raycasting лучи будут взаимодействовать только с объектами, к которым прикреплены компоненты коллайдера.

После настройки в любом настраиваемом компоненте, прикрепленном к объекту, мы можем использовать методы OnCollisionEnter, OnCollisionStay и OnCollisionExit для реагирования на коллизии. Получив информацию о столкновении, мы можем получить ответственность за GameObject и использовать то, что мы узнали ранее, для взаимодействия с прикрепленными к нему компонентами.

Следует отметить, что твердые тела обеспечивают физику, такую ​​как гравитация, для объектов, поэтому, если вы хотите отключить это, вам нужно будет включить is_kinematic .

Установите флажок «Кинематика», чтобы отключить нежелательную физику, но сохранить хорошее обнаружение столкновений.

Расширенные возможности

Мы не будем вдаваться в подробности сейчас, но, возможно, в следующей статье — просто чтобы вы знали, что они существуют.

Создание графического интерфейса

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

Расширение редактора Unity

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

Анимация

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

Материалы и PBR

Unity использует физический движок рендеринга, который обеспечивает освещение в реальном времени и реалистичные материалы. Реальность такова, что вам нужно либо сначала изучить 3D-моделирование, либо использовать модели, созданные и оптимизированные кем-то другим, прежде чем вы доберетесь до этого, чтобы создавать вещи, которые действительно хорошо выглядят.

Совет новичкам по Unity

Если вы планируете написать свою первую игру, не стоит недооценивать сложность и время, необходимое для написания даже самых тривиальных игр. Помните, что над большинством игр, которые выходят в Steam, команды работают над ними в течение многих лет!

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

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

Хорошие ресурсы для разработки игр в Unity

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

Ниже приведенные ресурсы исключительно на английском языке!

Концептуальное искусство

  • Школа дизайна Фэн Чжу (более 90 часов уроков по концепт-арту)
  • Тайлер Эдлин Арт (Великое арт-сообщество BST с отзывами профессионалов о ежемесячных испытаниях)
  • Art Cafe (Интервью и мастер-классы с известными концепт-художниками)
  • Трент Канюга (иллюстратор и 2D-художник, который также создает свою собственную игру)

3D моделирование

  • CG Cookie (лучшие основы моделирования сетки в Blender, у них есть множество другого отличного контента для блендера)
  • Тор Фрик (модельеры и скульпторы твердых поверхностей в Blender)
  • Глеб Александров (Краткие мощные уроки по рендерингу в Blender)

Игровой дизайн

  • DoubleFine Amnesia Fortnight (разработчики игр, которые проводят двухнедельный хакатон и записывают весь процесс проектирования)
  • Инструментарий GameMakers (изучает принципы игрового дизайна)

Программирование

  • Handmade Hero (Написание игры и движка с нуля на C)
  • Джонатан Блоу (инди-разработчик, транслирующий свою разработку игры)
  • Brackeys ( хорошие учебные пособия по Unity)

Добро пожаловать в Unity!

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

Руководство разделено на несколько разделов. Первый раздел представляет собой введение в интерфейс Unity, управление активами, основы рабочего процесса и основы построения игры. Если вы новичок в Unity, рекомендуем Вам начать с чтения первого раздела.

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

В последнем разделе,- Advanced, рассматриваются такие темы, как оптимизация игры, шейдеры, размеры файлов и развертывание приложений.

Руководство по IOS содержит конкретные темы, такие как специфические для  IOS API, оптимизации и общие вопросы разработки приложений под данную платформу.

В руководстве по Android рассматриваются конкретные темы, такие как настройка Android SDK и и общие вопросы разработки приложений под данную платформу.

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

Если вы обнаружили, что на какой-то вопрос у вас нет ответа в данном руководстве, пожалуйста, обращайтесь на форум Unity. Вы сможете найти ответ там.

Приятного чтения, Команда Unity.

Руководство содержит некоторые разделы, которые распространяются только на определенных платформах.

Содержание.

  • Руководство пользователя
    • Основы Unity
      • Изучение интерфейса
        • Браузер проекта
        • Иерархия
        • Панель инструментов
        • Окно сцены
        • Окно игры
        • Инспектор
        • Другие окна
      • Настройте Ваш интерфейс
      • Процесс работы с активами
      • Создание сцен
      • Публикация проекта
      • Уроки
      • Быстрые клавиши
      • Настройки
    • Построение сцен
      • Объекты игры
        • Взаимоотношения объектов и компонентов
        • Использование компонентов
        • Взаимоотношения компонентов и скриптов
        • Деактивация Объектов игры
      • Использование Инспектора
        • Редактирование свойств значений
          • Preset Libraries
        • Назначение ссылок
        • Редактирование нескольких объектов
        • Опции Инспектора
      • Использование Окна Сцены
        • Навигация в окне сцены
        • Позиционирование Объектов игры
        • Режимы окна сцены
        • Управление отображением Гизмо и иконок
      • Поиск
      • Префабы
      • Светильники
      • Камеры
      • Гид по движку Террайна
    • Asset Import and Creation
      • Importing Assets
      • Models
        • 3D formats
      • Legacy animation system
      • Materials and Shaders
      • Texture 2D
      • Procedural Materials
      • Movie Texture
      • Audio Files
        • Tracker Modules
      • Using Scripts
  • Asset Store
    • Asset Store Publisher Administration
  • Asset Server
    • Setting up the Asset Server
  • Cache Server
    • Cache Server Unity
    • Cache Server FAQ
  • Behind the Scenes
  • Creating Gameplay
    • Instantiating Prefabs at runtime
    • Input
    • Transforms
    • Physics
    • Добвление случайных элементов геймплея
    • Particle Systems
      • Particle System Curve Editor
      • Colors and Gradients in the Particle System (Shuriken)
      • Gradient Editor
      • Particle System Inspector
      • Introduction to Particle System Modules (Shuriken)
      • Particle System Modules (Shuriken)
      • Particle Effects (Shuriken)
    • Система анимации Mecanim
      • Глоссарий Меканим
      • Подготовка ассетов и импорт
        • Подготовка Вашего персонажа
        • Импорт анимаций
        • Разрезание анимаций
      • Работа с анимациями гуманоида
        • Создание Аватара
        • Конфигурирование Аватара
        • Настройка мускулов
        • Маска тела Аватара
        • Переназначение анимаций гуманоидов
        • Инверсная кинематика (только ПРО)
      • Родные анимации в Меканим
      • Оживление персонажа
        • Зацикливание анимационного клипа
        • Компонент Animator и Контроллер Animator
        • Машина состояний анимаций
          • Состояния анимаций
          • Переходы анимаций
          • Параметры анимации
        • Деревья смешивания
          • 1D Смешивание
          • 2D Смешивание
          • Добавочные опции Дерева смешиваний
        • Продвинутые вопросы по Меканим
          • Работа с кривыми анимаций в Меканим (только ПРО)
          • Машина под-состояний
          • Слои анимации
          • Превью машины состояний (solo и mute)
          • Согласование с целью
          • Движение корня — как это работает
            • Tutorial: Scripting Root Motion for «in-place» humanoid animations
      • Mecanim Performance and Optimization
      • Mecanim FAQ
    • Legacy animation system
      • Animation View Guide (Legacy)
      • Animation Scripting (Legacy)
    • Navmesh and Pathfinding
      • Navmesh Baking
    • Sound
    • Game Interface Elements
    • Networked Multiplayer
  • Getting Started with iOS Development
    • Unity iOS Basics
    • Unity Remote
    • iOS Scripting
      • Input
      • Mobile Keyboard
      • Advanced Unity Mobile Scripting
      • Using .NET API 2.0 compatibility level
    • iOS Hardware Guide
    • Optimizing Performance in iOS.
      • iOS Specific Optimizations
      • Measuring Performance with the Built-in Profiler
      • Optimizing the Size of the Built iOS Player
    • Account Setup
    • Features currently not supported by Unity iOS
    • Building Plugins for iOS
    • Preparing your application for «In App Purchases»
    • Customizing the Splash screen of Your Mobile Application
    • Trouble Shooting
    • Reporting crash bugs on iOS
  • Getting Started with Android Development
    • Android SDK Setup
    • Android Remote
    • Trouble Shooting
    • Reporting crash bugs under Android
    • Features currently not supported by Unity Android
    • Support for Split Application Binary (.OBB)
    • Player Settings
    • Android Scripting
      • Input
      • Mobile Keyboard
      • Advanced Unity Mobile Scripting
      • Using .NET API 2.0 compatibility level
    • Building Plugins for Android
    • Customizing the Splash screen of Your Mobile Application
  • Getting Started with Native Client Development
  • Getting Started with Flash Development
    • Flash: Setup
    • Flash: Building & Running
    • Flash: Debugging
    • Flash: What is and is not supported
    • Flash: Embedding Unity Generated Flash Content in Larger Flash Projects
    • Flash: Adobe Premium Features License
    • Example: Supplying Data from Flash to Unity
    • Example: Calling ActionScript Functions from Unity
    • Example: Browser JavaScript Communication
    • Example: Accessing the Stage
    • Example: Flash Vars
  • FAQ
    • Upgrade Guide from Unity 3.5 to 4.0
    • Unity 3.5 upgrade guide
    • Upgrading your Unity Projects from 2.x to 3.x
      • Physics upgrade details
      • Mono Upgrade Details
      • Rendering upgrade details
      • Unity 3.x Shader Conversion Guide
    • Unity 4.0 Activation — Overview
      • Managing your Unity 4.x license
      • Step-by-Step Guide to Online Activation of Unity 4.0
      • Step-by-Step Guide to Manual Activation of Unity 4.0
    • Game Code Questions
      • How to make a simple first person walkthrough
    • Graphics Questions
      • How do I Import Alpha Textures?
      • How do I Use Normal Maps?
      • How do I use Detail Textures?
      • How do I Make a Cubemap Texture?
      • How do I Make a Skybox?
      • How do I make a Mesh Particle Emitter? (Legacy Particle System)
      • How do I make a Splash Screen?
      • How do I make a Spot Light Cookie?
      • How do I fix the rotation of an imported model?
      • How do I use Water?
    • FBX export guide
    • Art Asset Best-Practice Guide
    • How do I import objects from my 3D app?
      • Importing Objects From Maya
      • Importing Objects From Cinema 4D
      • Importing Objects From 3D Studio Max
      • Importing Objects From Cheetah3D
      • Importing Objects From Modo
      • Importing Objects From Lightwave
      • Importing Objects From Blender
  • Workflow Questions
    • Getting started with Mono Develop
    • How do I reuse assets between projects?
    • How do I install or upgrade Standard Assets?
    • Porting a Project Between Platforms
  • Mobile Developer Checklist
    • Crashes
    • Profiling
    • Optimizations
  • Advanced
    • Vector Cookbook
      • Understanding Vector Arithmetic
      • Direction and Distance from One Object to Another
      • Computing a Normal/Perpendicular vector
      • The Amount of One Vector’s Magnitude that Lies in Another Vector’s Direction
    • AssetBundles (Pro only)
      • AssetBundles FAQ
      • Building AssetBundles
      • Downloading AssetBundles
      • Loading resources from AssetBundles
      • Keeping track of loaded AssetBundles
      • Storing and loading binary data in an AssetBundle
      • Protecting Content
      • Managing asset dependencies
      • Including scripts in AssetBundles
    • Graphics Features
      • HDR (High Dynamic Range) Rendering in Unity
      • Rendering Paths
      • Linear Lighting (Pro Only)
      • Level of Detail (Pro Only)
      • Shaders
        • Shaders: ShaderLab & Fixed Function shaders
        • Shaders: Vertex and Fragment Programs
      • Using DirectX 11 in Unity 4
      • Compute Shaders
      • Graphics Emulation
    • AssetDatabase
    • Build Player Pipeline
    • Profiler (Pro only)
      • Profiler window
        • CPU Usage Area
        • Rendering Area
        • Memory Area
        • Audio Area
        • ProfilerPhysics
        • GPU Area
    • Lightmapping Quickstart
      • Lightmapping In-Depth
      • Custom Beast Settings
      • Lightmapping UVs
      • Light Probes
    • Occlusion Culling (Pro only)
    • Camera Tricks
      • Understanding the View Frustum
      • The Size of the Frustum at a Given Distance from the Camera
      • Dolly Zoom (AKA the «Trombone» Effect)
      • Rays from the Camera
      • Using an Oblique Frustum
      • Creating an Impression of Large or Small Size
    • Loading Resources at Runtime
    • Modifying Source Assets Through Scripting
    • Generating Mesh Geometry Procedurally
      • Anatomy of a Mesh
      • Using the Mesh Class
      • Example — Creating a Billboard Plane
    • Rich Text
    • Using Mono DLLs in a Unity Project
    • Execution Order of Event Functions
    • Practical Guide to Optimization for Mobiles
      • Practical Guide to Optimization for Mobiles — Future & High End Devices
      • Practical Guide to Optimization for Mobiles — Graphics Methods
      • Practical Guide to Optimization for Mobiles — Scripting and Gameplay Methods
      • Practical Guide to Optimization for Mobiles — Rendering Optimizations
      • Practical Guide to Optimization for Mobiles — Optimizing Scripts
    • Structure of an Unity XCode Project
    • Optimizing Graphics Performance
      • Draw Call Batching
      • Modeling Characters for Optimal Performance
      • Rendering Statistics Window
    • Reducing File Size
    • Understanding Automatic Memory Management
    • Platform Dependent Compilation
    • Generic Functions
    • Debugging
      • Console
      • Debugger
      • Log Files
        • Accessing hidden folders
    • Plugins (Pro/Mobile-Only Feature)
      • Building Plugins for Desktop Platforms
      • Building Plugins for iOS
      • Building Plugins for Android
      • Low-level Native Plugin Interface
    • Textual Scene File Format (Pro-only Feature)
      • Description of the Format
      • An Example of a YAML Scene File
      • YAML Class ID Reference
    • Streaming Assets
    • Command line arguments
    • Running Editor Script Code on Launch
    • Network Emulation
    • Security Sandbox of the Webplayer
    • Overview of available .NET Class Libraries
    • Visual Studio C# Integration
    • Using External Version Control Systems with Unity
    • Analytics
    • Check For Updates
    • Installing Multiple Versions of Unity
    • Trouble Shooting
      • Troubleshooting Editor
      • Troubleshooting Webplayer
    • Shadows in Unity
      • Directional Shadow Details
      • Troubleshooting Shadows
      • Shadow Size Computation
  • IME in Unity
  • Optimizing for integrated graphics cards
  • Web Player Deployment
    • HTML code to load Unity content
    • Working with UnityObject2
    • Customizing the Unity Web Player loading screen
    • Customizing the Unity Web Player’s Behavior
    • Unity Web Player and browser communication
    • Using web player templates
    • Web Player Streaming
    • Webplayer Release Channels
  • Using the Chain of Trust system in the Web Player

Сделать игру на Unity сможет даже начинающий кодер, который не знает С#. Большое количество обучающих материалов и активное комьюнити значительно облегчают первые этапы знакомства с движком и создание первого проекта. Вместе с ведущим разработчиком Unity Владимиром Филимоновым и преподавателем на курсе «Разработчик игр» разбираемся, почему писать код — не главное в геймдеве и какие базовые инструменты и ПО в играх нужно освоить, чтобы соорудить свою первую игру.

Что такое Unity

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

Наглядный пример игры, созданной на Unity, которая поддерживает разные устройства, — Genshin Impact, успешный мультиплатформенный проект китайской студии miHoYo Limited. Более популярной стала ее мобильная версия, но пользователи могут войти в аккаунт, например, с компьютера и продолжить играть с того же момента, на котором остановились в мобильной версии. Кроме Genshin Impact, на Unity созданы такие известные проекты, как Hearthstone, Outlast, Cuphead, Pokemon GO и многие другие.

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

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

Как создать простую игру

При создании собственного проекта важно помнить, что разработка кода — это примерно 20% игры; гораздо большее значение в ней имеют другие аспекты:

  • Геймплей — это общее понятие взаимодействия игрока с игровым миром, которое определяет его действия (бежать вперед, преодолевать препятствия, стрелять по мишеням, обгонять других) и цели (прийти первым к финишу, выбить 10 из 10, победить врага в бою, собрать как можно больше монет). Геймплей напрямую связан с жанром игры, так как у каждого из них есть специфичный набор правил и механик.
  • Игровые механики конкретные элементы взаимодействия с игрой, которые входят в состав геймплея. Стрельба — это одна механика, сражение на мечах — другая, гонка — третья. Одна игра может сочетать в себе десятки таких механик.
  • Сюжет это развитие действия в игре; он одинаково важен и для масштабных AAA-проектов, и для небольших, но глубоких инди-игр. Сюжет должен затянуть игрока, рассказать ему историю, а также развивать персонажей, чтобы они не оставались однобокими и раскрывались для игрока с новых сторон.
  • Персонажи — в них важны и дизайн, и характер. Удачно проработанный персонаж обладает узнаваемыми особенностями поведения, интересной историей, а еще для полного погружения он должен иметь что-то общее с игроком, что зацепит его и заставит сопереживать. На эту тему Unity разработали гайд «Пять типов привлекательных игровых персонажей», чтобы у новичков получалось сделать игрового персонажа правдоподобным.
  • Дизайн уровней это внешний вид игры, цветовые решения, общая стилистика объектов, фона, персонажей, предметов, которая создает определенное настроение. В помощь начинающим разработчикам Unity опубликовали в своем блоге «Советы по дизайну уровней вашей первой видеоигры».
  • Баланс — это соотношение характеристик разных объектов, он тоже отвечает за увлеченность игрока. Например, если меч в игре может наносить объекту 3 единицы урона, а объект имеет всего 3 HP (hit points — величина, обозначающая максимальный урон), то его можно уничтожить с первого раза, и играть будет слишком легко. Если объект имеет 30 HP, то игроку придется нанести 10 ударов, чтобы его уничтожить. Такое уже подходит скорее для босса, например на первом или втором уровне. Разработчику важно грамотно распределить эти величины, чтобы игра была увлекательной и бросала игроку вызовы.

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

  • Ассет (Asset) готовый компонент, который можно использовать для создания своих проектов. Это могут быть элемент интерфейса в игре, текстура, фигурка персонажа, шрифт или звук.
  • Игровой объект (GameObject) это любой ассет, который используется в игровой сцене. Например, изображение монетки, сам ее внешний вид — это ассет, а пять монет, которые должен подобрать персонаж в процессе прохождения уровня — это пять игровых объектов. Сам персонаж при этом тоже станет игровым объектом.
  • Компоненты (Components) — часть игрового объекта, отвечающая за его поведение в процессе игры: перемещение или реакцию на определенные триггеры.
  • Скрипт (Script) код на C#, в котором прописаны конкретные условия работы компонента.

Установка Unity занимает 5–10 минут. Для этого нужно зайти на официальный сайт проекта и выбрать бесплатный тариф для физических лиц — Personal. Его будет достаточно для самостоятельного изучения Unity и создания первой игры. Еще один бесплатный тариф — студенческий, но он подойдет тем, кто зарегистрирован на GitHub и может подтвердить свой ученический статус.

После нажатия кнопки «Начать» откроется Unity Store. Для новых пользователей в нем есть вариант установки движка с обучающим руководством для начинающих. С помощью кнопки «Начните здесь» скачивается установщик UnityHubSetup.exe, который запускается как любой другой установщик: нужно просто открыть файл, принять условия пользовательского соглашения и нажать кнопку «Установить».

Русского языка в настройках нет, так что придется совершенствовать технический английский. Всего Unity занимает 11,3 Гб,поэтому перед установкой лучше проверить свободное место на диске и почистить его при необходимости.

Следующий шаг — создание Unity ID. Можно регистрироваться с помощью почты или использовать предложенные аккаунты, например Google или Apple. Важно поставить первые две галочки: согласие с условиями использования Unity и признание политики конфиденциальности. Третья галочка — это согласие на маркетинговые рассылки, ее ставить не обязательно.

После регистрации Unity предложит создать тестовый проект Microgame. На выбор предлагается пять шаблонов:

  • LEGO Microgame;
  • шутер от первого лица;
  • картинг;
  • платформер;
  • пустой 3D-шаблон.

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

Создание проекта

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

Новому проекту присваивается имя, выбираются место хранения на диске и темплейт — то есть шаблон для разработки, внешний вид и функционал которого зависит от количества измерений в игре. Проще начинать с 2D-проектов, так как для этого формата создано больше готовых ассетов. Конечно, можно сразу начать делать 3D-игры, но в этом случае многие элементы и анимации придется самостоятельно создавать с нуля или выделять бюджет на то, чтобы делегировать эту часть работы другим специалистам.

Настройка интерфейса

В стандартном интерфейсе проекта шесть элементов рабочей области:

  1. Верхняя панель инструментов в ней находятся стандартные вкладки File, Edit, Help, как во многих других интерфейсах, а также вкладки Assets, GameObject, Components и Window.
  2. Scene — окно сцены, в котором выстраивается игровое пространство (элементы игрового мира, текстуры, фигурки персонажей и прочее).
  3. Games — это окно игры, в котором можно посмотреть глазами пользователя, как будут двигаться элементы и работать игровые механики.
  4. Hierarchy — окно иерархии, в нем перечислен список всех элементов (GameObject), которые помещены в окно Scene.
  5. Project — это система папок, в которых хранятся ассеты по категориям (текстуры, шрифты, звуки и т.д.).
  6. Inspector — окно для изменения элементов игры, их размера, цвета, положения в пространстве и других характеристик.

Добавление объекта

Объекты на экран Scene можно добавить из Asset Store. Для этого на панели инструментов нужно кликнуть на вкладку Window –> General –> Asset Store.

В строке поиска можно по названиям найти нужные компоненты, например, сет Free Platform Game Assets.

Как и другие ассеты, он загружается с помощью кнопки Import.

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

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

Шаг 2. Перенести в область Scene

Работа со скриптами

За поведение игровых объектов отвечают присоединенные к ним компоненты (Components). Базовый компонент любого объекта — Transform, он отвечает за положение элемента в окне Scene, возможность поворачивать и масштабировать его. К базовому компоненту можно добавить, например, Renderer, который меняет цвет, или RigidBody, который отвечает за массу и физику объекта. Но кроме базовых компонентов, объектам можно задавать особые условия, и для этого как раз используются скрипты.

Создать новый скрипт можно в окне Project, кликнув мышкой на Assets –> Create –> C# Script.

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

Базовые элементы скриптов — это:

  • using — элемент в коде, который подключает библиотеки;
  • public class — в этой строке обычно прописан класс MonoBehaviour, он содержит набор функций, необходимых для работы скрипта;
  • void — те самые функции, с их помощью прописываются действия, происходящие в игре.

Рассмотрим, например, функцию start. Любое действие в ней произойдет только один раз, когда запустится игра. Пропишем здесь print (“Hi”).

И можно заметить, что в консоли это слово выводится один раз.

Функция update — повторяющаяся, ее можно использовать, например, для передвижения объекта. Для этого в скрипте задается переменная int i = 0, она выводится на экран с помощью функции print (i) и увеличивается на одну единицу за каждый шаг с помощью i++.

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

Настройка триггеров

Для понимания сути триггеров важно усвоить, что такое коллайдер (Collider). Это компонент, который присваивается объекту в пространстве игры, задает форму и делает его твердым, недоступным для прохождения сквозь него. Например, если мы разместим монетку в 2D-пространстве и захотим сделать так, чтобы она упала на платформу, то без использования компонента Collider ничего не получится — монетка пролетит сквозь платформу.

Поэтому обоим объектам необходимо присвоить компонент Box Collider 2D — это тонкая зеленая линия, которая обводит элементы по контуру, и за счет этой рамки они становятся твердыми, то есть один не может пройти сквозь другой.

Так объекты обязательно соприкоснутся и монета встанет на платформу.

Триггер (Trigger) — это пространство на карте, при попадании объекта в которое происходит действие; он тоже обводит объект или область в пространстве по краям. По сути, это тот же коллайдер, только триггер позволяет объектам проходить внутрь этой области. Представьте, что на ту же самую платформу вместе с коллайдером наброшен триггер, и при попадании персонажа внутрь триггерной области активируется телепорт — персонажа перебрасывает в другую точку карты.

Чтобы создать триггер, нужно накинуть тот же самый компонент коллайдера, но поставить галочку Is Trigger.

Триггеры распознают три варианта взаимодействия области на карте и объекта:

  • OnTriggerEnter — объект зашел в зону;
  • OnTriggerStay — объект находится в зоне;
  • OnTriggerExit — объект покинул зону.

Что дальше?

Освоить интерфейс Unity довольно легко, в интернете есть разные гайды на тему того, как сделать это действительно быстро. Например, видео «Я сделал игру на Unity за неделю» или обучающий мини-курс «Как создать RPG за час». Можно изучать геймдев самостоятельно или начать обучение на курсе — это ускорит процесс и даст более заметные результаты.

Для работы со скриптами и создания более сложных механик разработчикам в любом случае понадобится С#, так что к его изучению вы тоже рано или поздно придете. Но в отличие от Unity, по C# нет в свободном доступе такого большого количества актуальных и понятных гайдов, так что в целях экономии времени и сил лучше записаться на курс «Разработчик игр на Unity», где все знания упакованы в структурированные блоки и сбалансированы с практикой на тренажерах.

Введение в Unity

В данном уроке мы познакомимся с такой средой разработки, как Unity. Подробно разберем интерфейс Unity и поймем с чего нужно начинать разработку игр.

Сегодня Unity может похвастаться наибольшим развитием, чем любая другая игровая технология. Благодаря поддержке почти 30 платформ, в том числе мобильных, виртуальной реальности, настольных ПК и консолей, Unity — это не просто хороший вариант для старта, это идеальный вариант для старта!

Начало работы в Unity: знакомство с интерфейсом

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

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

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

  • Как установить Unity, а также различия между тремя разными версиями
  • Что составляет интерфейс Unity
  • Навигацию внутри сцены
  • Добавление и управление объектами GameObject и их компонентами

Первая часть этого руководства посвящена ознакомлению с пользовательским интерфейсом Unity.

Во второй части урока мы будем использовать эти знания для создания своей первой игры — простой игры про полет космического корабля.

Начало работы в Unity: знакомство с интерфейсом

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

Содержание

  1. С чего начать?
  2. Переделываем интерфейс
  3. 1. Окно сцены
  4. 2. Окно игры
  5. 3. Окно иерархии
  6. 4. Окно проекта
  7. 5. Окно инспектора
  8. 6. Панель инструментов
  9. 7. Кнопки воспроизведения
  10. 8. Разные настройки редактора
  11. Что делать дальше?
  12. Видео

С чего начать?

Первым шагом этого урока является загрузка Unity. Но подождите — есть четыре разные версии. Какую из них выбрать?

Начало работы в Unity: знакомство с интерфейсом

Все версии Unity предоставляют одинаковые функции движка

  • Personal: бесплатно
  • Plus: $ 40 / мес
  • Pro: $ 150 / мес

Существует также версия Enterprise, в которой ваши пользовательские потребности определяют стоимость подписки.

Начало работы в Unity: знакомство с интерфейсом

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

Кроме того, существуют различные сервисы внутри Unity, такие как Cloud Build и Analytics, которые становятся доступными в платных версиях.В Unity есть несколько строгих правил о том, как вы можете использовать персональную версию. Перед тем, как приступить к работе, обязательно ознакомьтесь с FAQ по Unity, чтобы узнать, имеете ли вы право его использовать.

Для выполнения этих уроков достаточно персональной версии, поэтому нажимаем на кнопку начать. Это приведет вас к странице загрузки, на которой нужно принять условия использования и загрузить установщик.

Начало работы в Unity: знакомство с интерфейсом

Запустите установщик и следуйте инструкциям на экране. Дождитесь завершения установки и запустите Unity Hub. Вам будет предложено создать учетную запись.

Начало работы в Unity: знакомство с интерфейсом

Создав учетную запись, запустите Unity. Нажмите File-New Project чтобы создать новый проект.

Начало работы в Unity: знакомство с интерфейсом

  • 1. Назовите свой проект Spaceship и выберите место на жестком диске, чтобы сохранить его.
  • 2. Вы заметите, что у вас есть несколько вариантов выбора шаблонов. Каждый шаблон предварительно настраивает Unity, чтобы сэкономить ваше время в зависимости от того, что вы хотите сделать. Сейчас выберите 3D.
  • 3. Нажмите Create, и Unity откроет ваш первый проект.

Переделываем интерфейс

Когда Unity впервые откроется, вы увидите окно, которое выглядит так:

Начало работы в Unity: знакомство с интерфейсом

Видео: Начало работы с программой. Знакомство с интерфейсомСкачать

Начало работы с программой. Знакомство с интерфейсом

Видео: 1.3 Знакомство с интерфейсом UNITYСкачать

1.3 Знакомство с интерфейсом UNITY

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

В верхнем правом углу вы увидите пять кнопок. Выберите крайнюю справа. Это выбор макета (Layout). Из списка опций выберите 2 by 3.

Начало работы в Unity: знакомство с интерфейсом

Ваш редактор станет выглядеть так, как показано ниже:

Начало работы в Unity: знакомство с интерфейсом

Теперь разберем имеющиеся разделы.

1. Окно сцены

Окно сцены (Scene View) — это место, где вы строите свою игру. Здесь вы добавляете все модели, камеры и другие элементы, составляющие вашу игру. Это трехмерное окно, где вы можете визуально разместить все ассеты (assets), которые вы используете.

Начало работы в Unity: знакомство с интерфейсом

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

Когда вы остановите игру, окно сцены вернется в исходное состояние. Любые изменения, внесенные в сцену во время игры, будут потеряны после ее остановки.

2. Окно игры

Окно игры (Game View) отображает игровую перспективу игрока. Здесь вы можете поиграть в свою игру и увидеть, как все различные механизмы работают друг с другом.

Начало работы в Unity: знакомство с интерфейсом

В окне игры имеется селектор соотношения сторон, который позволяет вам изменять размеры вида в соответствии с определенным соотношением сторон экрана (например, 4: 3, 16: 9, 16:10…) или размером экрана устройства, например это iPhone или iPad.

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

Начало работы в Unity: знакомство с интерфейсом

3. Окно иерархии

Окно иерархии (Hierarchy Window) содержит список всех текущих объектов (GameObjects), используемых в вашей игре. Но что такое GameObject? Простыми словами, GameObject — это объект в вашей игре.

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

GameObjects также могут действовать как папки, содержащие другие GameObjects, что делает их весьма полезными для организации вашей сцены. Вы увидите GameObjects в действии во второй части этого урока.

Сцена обычно представляет один уровень вашей игры, хотя теоретически вы можете поместить всю игру в одну сцену. Любые GameObjects, активно используемые в вашей игре в текущей сцене, появятся в окне Иерархии (Hierarchy).

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

По мере того, как ваша сцена разрастается большим количеством GameObjects, панель поиска окажется бесценным инструментом.

Начало работы в Unity: знакомство с интерфейсом

4. Окно проекта

Окно проекта (Project Window) содержит все ассеты, используемые вашей игрой. Вы можете организовать свои ассеты по папкам. Если вы хотите использовать их, вы можете просто перетащить их из окна проекта в окно иерархии.

Кроме того, вы можете перетащить их из окна проекта в окно сцены. Если вы перетащите файлы со своего компьютера в окно проекта, Unity автоматически импортирует их как ассеты.

Начало работы в Unity: знакомство с интерфейсом

Unity организует ассеты в окне проекта так же, как файловая система ОС. 

У вас может возникнуть соблазн вносить изменения непосредственно в файловую систему, а не в окно проекта, но это большая ошибка, которая сломает ваши ассеты — и, возможно, сломает вашу игру!

Unity поддерживает метаданные для каждого ассета, поэтому перемещение ресурсов между папками в файловой системе нарушает метаданные. Если вам необходимо внести какие-либо организационные изменения в свои ассеты, особенно в префабы, всегда вносите эти изменения в окне проекта.

Видео: Unity3D Урок 1 [Знакомство с интерфейсом]Скачать

Unity3D Урок 1 [Знакомство с интерфейсом]

Видео: Основы Unity — 1. Знакомство с интерфейсом UnityСкачать

Основы Unity - 1. Знакомство с интерфейсом Unity

5. Окно инспектора

Окно инспектора (Inspector Window) позволяет вам настроить любой GameObject. Когда вы выбираете GameObject в Иерархии, Инспектор перечисляет все компоненты GameObject и их свойства.

Например, свет будет иметь цветовое поле вместе с полем интенсивности. Вы также можете изменять значения ваших GameObjects во время игры.

Начало работы в Unity: знакомство с интерфейсом

6. Панель инструментов

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

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

Начало работы в Unity: знакомство с интерфейсом
  • 1. Откройте раскрывающийся список GameObject из меню Unity
  • 2. Выберите раскрывающийся список 3D-объектов
  • 3. Выберите Cube из списка доступных объектов

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

Если вы потеряли отслеживание куба при экспериментировании с параметрами, просто 
дважды щелкните игровой объект куба в окне иерархии, 
это отцентрирует куб в сцене.

Начало работы в Unity: знакомство с интерфейсом

Выберите инструмент Рука (Hand) затем перетащите указатель мыши на окно сцены, чтобы панорамировать всю сцену.

Начало работы в Unity: знакомство с интерфейсом

Щелкните правой кнопкой мыши и перетащите мышь, чтобы повернуть камеру вокруг вашего текущего положения. Обратите внимание, что значок руки превращается в глаз.

Начало работы в Unity: знакомство с интерфейсом

Затем, удерживайте нажатой клавишу Ctrl (или Cmd) и Alt (или Option) . Щелкните правой кнопкой мыши и переместите мышь вверх, чтобы увеличить масштаб сцены.

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

Начало работы в Unity: знакомство с интерфейсом

Наконец, удерживайте правую кнопку мыши и используйте клавиши WASD для перемещения по сцене, как в шутере от первого лица.

Аналогично, вы можете перемещаться вверх и вниз, нажимая E или Q соответственно. Чтобы двигаться еще быстрее, нажмите и удерживайте клавишу Shift .

Начало работы в Unity: знакомство с интерфейсом

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

Инструмент Перемещение (Move) позволяет выбирать и размещать GameObject на сцене.

Начало работы в Unity: знакомство с интерфейсом

Когда вы выберете GameObject при активном инструменте Перемещение, в центре объекта появляются три цветные стрелки. Эти стрелки указывают трехмерные оси объекта: ось X — красная стрелка, ось Y — зеленая стрелка, а ось Z — синяя стрелка.

Эта группа из трех цветных стрелок в Unity называется gizmo. Gizmo — это трехмерная геометрия или текстура, которая предоставляет информацию об GameObject.

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

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

Три цветные плоскости в центре GameObject позволяют перемещать его по двум осям. Цвет квадрата указывает, по какой плоскости он будет двигаться. Например, зеленый квадрат означает, что вы можете перемещать объект по плоскости y (что означает, что он может перемещаться по осям x и z).

Видео: ВЕСЬ UI ИНТЕРФЕЙС В UNITY В ОДНОМ ВИДЕО | АДАПТИВНЫЙ UI | СОЗДАНИЕ ГЛАВНОГО МЕНЮСкачать

ВЕСЬ UI ИНТЕРФЕЙС В UNITY В ОДНОМ ВИДЕО | АДАПТИВНЫЙ UI | СОЗДАНИЕ  ГЛАВНОГО МЕНЮ

Видео: Делаем игру на Unity #1 / Ознакомление с интерфейсом UnityСкачать

Делаем игру на Unity #1 / Ознакомление с интерфейсом Unity

Начало работы в Unity: знакомство с интерфейсом

Клавиша быстрого доступа по умолчанию для инструмента перемещение W.

Инструмент Вращение (Rotate) позволяет, как вы уже догадались, вращать объекты.

Начало работы в Unity: знакомство с интерфейсом

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

Начало работы в Unity: знакомство с интерфейсом

Клавиша быстрого доступа по умолчанию для инструмента вращение E.

Инструмент Масштаб (Scale) позволяет масштабировать объект GameObject либо по одной оси, либо пропорционально по всем осям.

Начало работы в Unity: знакомство с интерфейсом

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

Начало работы в Unity: знакомство с интерфейсом

Клавиша быстрого доступа по умолчанию для инструмента масштаб R.

Инструмент Rect в основном используется с 2D-объектами и пользовательским интерфейсом (UI), хотя его можно использовать и для 3D-объектов.

Начало работы в Unity: знакомство с интерфейсом

Инструмент может изменять размеры, масштабировать и вращать 2D-объекты, а также сбрасывать точку вращения, которая является центральной точкой вращения объекта. Опорная точка представлена ​​большим кружком на объекте.

Начало работы в Unity: знакомство с интерфейсом

Клавиша быстрого доступа по умолчанию для инструмента Rect T.

Инструмент Преобразование (Transform) объединяет перемещение, масштабирование и вращение в один инструмент.

Начало работы в Unity: знакомство с интерфейсом

Начало работы в Unity: знакомство с интерфейсом

Первый переключатель переключается между центральным (center) и поворотным (pivot) режимами. В центральном режиме, если вы выберете два объекта GameObject, гизмо будет размещено в центре двух объектов. Вращение GameObjects вращает их вокруг центра гизмо. В режиме поворота каждый GameObject вращается вокруг своей точки поворота, как показано ниже:

Начало работы в Unity: знакомство с интерфейсом

Второй переключатель переключает между глобальным (global) и локальным (local) пространством.

  • Глобальный режим: вы управляете своим объектом с точки зрения окружающего мира. Ось X движется слева направо, ось Y движется вверх и вниз, а ось Z движется вперед и назад, как обычно.
  • Локальный режим: работает из системы координат самого объекта и меняет оси в соответствии с осью реального GameObject.

Начало работы в Unity: знакомство с интерфейсом

7. Кнопки воспроизведения

Кнопки воспроизведения (Play Buttons) позволяют запускать и останавливать игру. Первая кнопка — кнопка воспроизведения:

Начало работы в Unity: знакомство с интерфейсом

Несколько вещей происходят, когда вы нажимаете кнопку Play. Сначала ваша игра запустится, как и ожидалось. Набор кнопок также станет синим, чтобы показать, что игра находится в движении.

Видео: Как сделать игру на UNITY в 3D?! Знакомство с интерфейсом и начало 1-ой главыСкачать

Как сделать игру на UNITY в 3D?! Знакомство с интерфейсом и начало 1-ой главы

Начало работы в Unity: знакомство с интерфейсом

Интерфейс Unity затемнится, чтобы показать, что игра активна.

Начало работы в Unity: знакомство с интерфейсом

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

Далее следует кнопка Пауза:

Начало работы в Unity: знакомство с интерфейсом

Она позволяет сделать паузу и вносить изменения в игру.

Как и в режиме запущенной игры, эти изменения будут потеряны, как только вы остановите игру. Редактирование GameObjects во время игры и паузы — это система читинга и балансировки, которая позволяет вам экспериментировать с игрой, не опасаясь навсегда ее сломать.

Наконец, последняя кнопка Step:

Начало работы в Unity: знакомство с интерфейсом

Она позволяет вам шаг за шагом проходить игру. Это удобно, когда вы хотите наблюдать анимацию по кадрам, или когда вы хотите проверить состояние определенных GameObjects во время игры.

Начало работы в Unity: знакомство с интерфейсом

8. Разные настройки редактора

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

Начало работы в Unity: знакомство с интерфейсом

Это один из последних сервисов Unity, который помогает крупным командам без проблем сотрудничать в рамках одного проекта.

Следующая кнопка — кнопка Сервисы, где вы можете добавить дополнительные сервисы Unity в игру. Нажатие на кнопку предложит вам создать идентификатор проекта Unity.

Начало работы в Unity: знакомство с интерфейсом

Как только вы добавите идентификатор проекта, вы сможете добавить сервисы в ваш проект.

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

Вы также можете добавить:

  • аналитику
  • внутриигровую рекламу
  • многопользовательская поддержку
  • покупку в приложении
  • отчеты о производительности
  • сотрудничество

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

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

Начало работы в Unity: знакомство с интерфейсом

Четвертая кнопка — кнопка Слои (Layers).

Начало работы в Unity: знакомство с интерфейсом

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

Последняя кнопка Макеты (Layouts) позволяет создавать и сохранять макеты в редакторе и переключаться между ними. Unity прекрасно настраивается. Каждый из различных окон в макете может быть изменен, закреплен, перемещен или даже полностью удален из редактора.

Начало работы в Unity: знакомство с интерфейсом

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

Что делать дальше?

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

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

Видео

Учим Unity за 1 час! #От ПрофессионалаСкачать

Учим Unity за 1 час! #От Профессионала

Знакомство с интерфейсом Unity 3DСкачать

Знакомство с интерфейсом Unity 3D

1 Урок Установка и знакомство с UnityСкачать

1  Урок   Установка и знакомство с Unity

#0 Unity. Знакомство со средой и интерфейсомСкачать

#0 Unity. Знакомство со средой и интерфейсом

Вводный урок в интерфейс Unity #1Скачать

Вводный урок в интерфейс Unity #1

Интерфейс Unity 3D для новичковСкачать

Интерфейс Unity 3D для новичков

Как создать UI — пользовательский интерфейс в Unity?Скачать

Как создать UI - пользовательский интерфейс в Unity?

Unity 3d знакомство с интерфейсом пользователя 1Скачать

Unity 3d знакомство с интерфейсом пользователя 1

Начальное меню для игры в UnityСкачать

Начальное меню для игры в Unity

Знакомство с Unity 18 | Урок — 1Скачать

Знакомство с Unity 18 | Урок - 1

Работа с Unity. Урок 0. Основы интерфейсаСкачать

Работа с Unity. Урок 0. Основы интерфейса

ТВОЙ ПЕРВЫЙ ДЕНЬ В UNITY. Урок Unity для начинающих. Игрострой by ArtalaskyСкачать

ТВОЙ ПЕРВЫЙ ДЕНЬ В UNITY. Урок Unity для начинающих. Игрострой by Artalasky

Понравилась статья? Поделить с друзьями:
  • Инструкции по бухгалтерскому учету для казенных учреждений
  • Духовой шкаф aeg инструкция по эксплуатации на русском
  • Аквад3м капли инструкция по применению взрослым
  • Lvds lcd tester t 60s инструкция на русском
  • 3tn ru официальный сайт инструкция по сборке душевой кабины