Введение в Unity 3D
Unity 3D - мощный движок для разработки игр. Это кроссплатформенный, то есть он позволяет создавать игры для мобильных устройств, веб-сайтов, настольных компьютеров и консолей, всего около 30 платформ. Unity 3D имеет много интересных функций, некоторые из них приведены ниже:
- Расходы: Персональная версия Unity 3D бесплатна для начинающих, студентов и любителей. Unity Personal обладает всеми основными функциями Unity. Он также имеет базовую аналитику, облачную сборку, рекламу, многопользовательскую игру, покупки в приложении и кроссплатформенные функции. Помимо этих функций, Unity Personal также имеет несколько ограничений. Две другие версии Unity Plus и Unity Pro также доступны для серьезных создателей и профессионалов по цене от 35 долларов в месяц.
- Универсальный редактор: Unity известен как универсальный редактор. В редакторе Unity есть несколько удобных для художников инструментов для создания впечатляющих впечатлений. Он обладает сильным набором инструментов разработчика для реализации игровой логики и высокопроизводительного игрового процесса. Unity также позволяет создавать как 2D-, так и 3D-игры. Он также включает инструменты поиска пути AI, основанные на системе навигации. Он имеет отличную встроенную систему для создания привлекательных пользовательских интерфейсов. Его физический движок Box2D позволяет нам создавать реалистичное движение, импульс, силу и игровой процесс.
- Платформы: Unity поддерживает множество различных платформ, таких как Linux, IOS, Android, Windows и т. Д. всего около 30 платформ.
- Виртуальная и дополненная реальность: Unity поддерживает разработку виртуальной и дополненной реальности. Это наиболее широко используемый движок для разработки XR. Он имеет поддержку Microsoft HoloLens, Stream VR / Vive, Gear VR и PlayStation VR в Unity Plus для виртуальной и дополненной реальности.
- Мультиплеер: Для сетевых и многопользовательских игр в реальном времени Unity - лучший вариант. Он предоставляет серверы для совместной работы в реальном времени.
- Производительность двигателя: Производительность движка Unity выдающаяся. Многопоточная вычислительная система подходит для интенсивных сценариев. В движке Unity есть расширенные инструменты профилирования, которые определяют, привязана ли ваша игра к процессору, а также рассказывают, как ее оптимизировать для повышения удобства работы.
- Unity Asset Store: Это огромный каталог бесплатного и платного контента. Вы можете увеличить время разработки, загрузив множество встроенных бесплатных моделей и ресурсов. Даже в магазине ресурсов Unity есть готовые проекты как бесплатно, так и за плату.
- Отрисовка графики: Unity имеет одну из лучших систем рендеринга графики. Он позволяет создавать такие среды, как светлый день, яркое свечение неоновых вывесок, тускло освещенные полуночи и темные туннели. Создает потрясающие визуальные эффекты. Несмотря на то, что Unity поддерживает мультиплатформенность, он все же пытается охватить низкоуровневый графический API каждой платформы для получения лучших результатов и затруднения взаимодействия с пользователем.
- Сотрудничество в команде: Он имеет функции, обеспечивающие совместную работу и простой рабочий процесс. Облачное хранилище Unity позволяет сохранять, публиковать и синхронизировать ваши проекты где угодно.
- Отчетность по эффективности: Система отчетов о производительности Unity решает проблемы в режиме реального времени. Очень оперативно решаются первоочередные вопросы. Находит ошибки приложений на разных устройствах и платформах.
Интерфейсы Unity
Давайте изучим интерфейсы редактора Unity, которые можно настраивать. Он состоит из окон с резьбой, которые вы можете переставить в соответствии с вашими потребностями. Давайте исследуем настройки окна по умолчанию. Вот изображение, как это выглядит
Окно иерархии
Окно Иерархии представляет каждый объект в сцене. Он показывает, как объекты связаны друг с другом в сцене, поэтому эти два окна связаны. В окне иерархии есть выпадающий список с именем Создавать. Вы можете очень легко создать пустой объект, 3D-объекты, 2D-объекты, свет, аудио, видео, систему частиц и объекты камеры. Окно иерархии показано ниже. «Без названия» - это название сцены. Вы можете переименовать его как хотите. Вы можете увидеть выпадающий значок справа от без названия (название сцены). Нажав на это раскрывающееся меню, вы увидите различные варианты Сохранить сцену а также Добавить новую сцену.
Окно сцены
Окно сцены - это место, где вы создаете свою сцену. Здесь вы можете взаимодействовать со своими игровыми объектами и моделями. Вы можете изменять размер, форму и положение объектов сцены. Это окно, в котором вы начинаете работать с Unity. Просмотр сцены может быть двухмерным или трехмерным в зависимости от настроек вашего проекта. Вот скриншот того, как выглядит окно сцены:
В окне сцены вы можете увидеть еще одну вкладку с надписью Затененный, здесь вы можете выбрать, какой тип представления вы хотите - затененный или каркасный. У него есть много других опций, таких как Разное, Глобальное освещение, GI в реальном времени, Запеченный GI и многие другие. Вы можете просматривать в 2D или 3D, используя кнопку рядом с Затененный падать. Далее находится кнопка переключения освещения сцены. Аналогично кнопка переключения для звука сцены. Далее следует раскрывающийся список, в котором можно включить небесный бокс, туман, анимированный материал и эффекты изображения.
Окно игры
Окно игры представляет вашу последнюю опубликованную игру в игровом режиме. Он рендерится с камер, которые вы использовали в игре. В окне игры вы можете увидеть другую панель инструментов, как показано ниже на снимке экрана:
Дисплей 1 показывает камеру, присутствующую в вашей игровой сцене. По умолчанию установлено значение Дисплей 1 для основной камеры. Если у вас несколько камер и вы хотите переключиться, вы можете выбрать их из раскрывающегося списка. Рядом с этим вы можете увидеть раскрывающееся меню для соотношений сторон. Вы можете выбрать в соответствии с экраном монитора вашего целевого устройства. Далее вы можете увидеть Ползунок масштабирования увеличить. Прокрутите вправо и изучите более подробную информацию о вашей сцене в режиме воспроизведения. Далее находится кнопка для Максимум в игре, при нажатии размер игрового окна будет максимальным в режиме игры. Отключить звук переключатель используется для отключения / включения звука. Статистика показывает статистику рендеринга звука и графики вашей игры.
Окно "Активы проекта"
Как видно из названия, в окне активов есть все активы вашего проекта, которые вы можете использовать. Если вы импортируете что-то новое, оно появится в окне активов проекта. Окно ресурсов проекта состоит из двух частей: левой и правой, как показано на снимке экрана ниже:
Левая панель показывает иерархическую структуру активов проекта. Когда вы нажимаете на любую папку, она показывает детали на правой панели. Например на данном рисунке Сборные папка нажата на левой панели, поэтому ее детали отображаются на правой панели, поскольку она содержит два игровых объекта. На левой панели вы можете увидеть Избранное раздел, в котором вы можете перетаскивать элементы, которые хотите использовать очень часто, чтобы не тратить время на их поиск. Над ним вы можете увидеть Создавать раскрывающийся список, который позволяет вам создать сценарий C #, папку, шейдер, оболочку графического интерфейса пользователя, сцену, префаб, материал и многое другое.
Окно консоли
Окно консоли - это место, где вы можете увидеть свои ошибки, предупреждения и сообщения. Вы можете настроить их, нажимая на их кнопки переключения. Он также позволяет очистить все ошибки, предупреждения и сообщения. Вы можете приостановить ошибки на определенное время. Здесь вы можете увидеть на следующем рисунке
Выпадающий значок в правом верхнем углу имеет параметры для журнала редактора и ведения журнала трассировки стека.
Окно инспектора
Окно инспектора - одно из самых интересных и полезных окон редактора. Это место, где вы можете редактировать все свойства выбранного игрового объекта. Каждый игровой объект имеет свой тип, поэтому их свойства будут разными, а окно инспектора может отличаться. Активы, скрипты и игровые объекты различаются по свойствам. Давайте посмотрим свойства куба в окне инспектора. Вот изображение:
Вы можете переименовать свой игровой объект, просто щелкнув предыдущее имя и введя новое. Затем вы увидите раздел преобразования, в котором вы можете настроить положение, поворот и масштабирование выбранного игрового объекта. В последнем вы видите название кнопки как Добавить компонент, щелкните по нему, чтобы добавить новые компоненты к своему игровому объекту, например, если вы хотите прикрепить скрипт, просто нажмите на добавление компонента и введите имя своего скрипта.
Панель инструментов
Последняя - вкладка панели инструментов, она имеет много полезных функций. Он содержит некоторые основные инструменты для управления видом сцены и объектами. В центре расположены кнопки воспроизведения, паузы и пошагового управления. Следующие две кнопки показывают ваше облако Unity и учетную запись Unity. Вот как это выглядит на рисунке:
Начало работы с Unity
Давайте начнем создавать новый проект в Unity, потому что пришло время поиграть с тем, что мы узнали. Дважды щелкните значок Unity, появится следующее окно:
Входить название проекта, выбрать рабочее место Место расположения а затем выберите тип вашего проекта: 2D или 3D. Нажмите на Создать проект.
По умолчанию вы увидите сцену без названия, содержащую основную камеру и направленный свет в сцене. Начнем создавать среду.
Строительная среда
Прежде всего создайте самолет, нажав на Создать -> 3D-объект а затем выберите Самолет. Или, как вариант, вы можете создать его, нажав на GameObject -> Игровой объект а затем выберите Самолет. Перейдите в окно иерархии и нажмите на игровой объект плоскости. Теперь перейдите в окно инспектора и переименуйте его как Земля. Теперь настройте значения трансформации так, чтобы эта плоскость выглядела как прямая дорога. Просто масштабируйте X до 6 и Z до 50. Вот изображение, как это выглядит
Теперь загрузите текстуру дороги и примените ее к объекту земли. Создайте имя папки как Текстура. Перетащите загруженную текстуру дороги в папку Текстуры. Теперь выберите Земля и перетащите текстуру дороги в вид сцены. Вот изображение, как это выглядит
Это текстура, которую я скачал
После наложения текстуры на землю нажмите «Земля» и установите тайлинг в окне инспектора. Вот как я это установил.
Теперь вы создали модель дороги, давайте создадим модель шара в единстве.
Перейти к Создать -> 3D объект а затем выберите Сфера, вы увидите объект сферы в окне сцены. Выберите его и перейдите в окно инспектора, чтобы переименовать его как Мяч. Теперь измените значения трансформации соответствующим образом. Просто отмасштабируйте его до 5 по всем трем осям и переместите в центр дороги. Вот как это выглядит
Теперь создайте забор или стену вокруг дороги.
Перейти к Создать -> 3D-объект а затем выберите Куб. Выберите его и переименуйте в Стена1. Перейдите в окно инспектора и установите значения трансформации так, чтобы она выглядела как стена вокруг дороги. Вот как это выглядит:
См. Эти значения преобразования для Стена1. Масштабируйте Y до 6 и Z до 500. Затем отрегулируйте его положение так, чтобы оно попадало на углы дороги.
Теперь найдите текстуру стены, загрузите ее и скопируйте в Текстура папка в активах. Перетащите текстуру стены на стену в окне сцены. Отрегулируйте вспашку так, чтобы она выглядела красиво и гладко. Я скорректировал тайлинг как X на 50 и Y на 1.5. Вот как это выглядит после настройки тайлинга
Это текстура, которую я использовал для стены
Мы создали стену для одной стороны дороги. Теперь сделайте то же самое и для другой стороны дороги. Вместо того, чтобы проходить весь процесс, мы можем просто скопировать Стена1 и переименуйте его в Стена2.
Выбирать Стена1 в окне иерархии, а затем щелкните правой кнопкой мыши и выберите Дубликат вариант. Он создаст другой игровой объект с такими же размерами и значениями трансформации. Нажмите на Стена1 (1) и переименуйте его в Стена2. Теперь отрегулируйте положение так, чтобы оно доходило до другого угла дороги.
Посмотрите на следующее изображение, как это круто выглядит
Мои значения положения для Wall2 от X до -29.С 6 лет до 2.6 и Z до 2.6.
Теперь создадим материал для Мяч. Перейдите в окно проекта и создайте папку, щелкнув правой кнопкой мыши и затем выберите Папка. Назовите это как Материалы. Снова щелкните правой кнопкой мыши и создайте материал. Назовите это как красный мяч. В окне инспектора выберите цвет материала. Перейти к Основные карты и выберите цвет Альбедо на красный. Увеличьте металлическую текстуру, прокручивая полосу вправо. Перетащите этот материал в Мяч в виде сцены. Вот как это выглядит
Вот как выглядит материал:
Итак, мы закончили разработку нашей среды. Теперь пора заняться кодированием. Для этого нам нужно создать скрипт.
Скрипты в Unity
Для реализации ваших собственных функций игрового процесса и управления поведением игры Unity предоставляет механизм сценариев. Вы можете написать свой собственный скрипт для желаемого результата игры. С помощью этих скриптов вы можете запускать игровые события, изменять свойства компонентов и реагировать на вводимые пользователем данные. В основном Unity поддерживает два разных языка программирования для сценариев, один - C #, а другой - JavaScript. Помимо этих двух языков многие другие .NET также можно использовать с Unity. Скрипты известны как компонент поведения в Unity.
Создание сценария
Приступим к созданию скрипта Unity. Для этого перейдите в окно ресурсов и создайте новую папку с именем Скрипты (вы можете пропустить создание новых папок для каждого нового типа ресурсов, но рекомендуется держать вещи организованными). Вот как теперь выглядит окно с моими активами:
Теперь откройте Скрипты папку, щелкните правой кнопкой мыши и перейдите в Создавать и выберите C # сценарий. Переименовать скрипт в Движение. Мы создаем этот скрипт для движения и катания мяча по дороге. Пока мяч неподвижен, ничего не делает, давайте создадим в нем движение.
Дважды щелкните скрипт Movement, который откроется в Mono Develop. Если ваш скрипт является моно-поведением, вы увидите предварительно написанный код вроде этого
используя систему.Коллекции; используя систему.Коллекции.Универсальный; using UnityEngine; public class MovementScript: MonoBehaviour // Используйте это для инициализации void Start () // Обновление вызывается один раз за кадр void Update ()
Вы можете увидеть две функции Start () и Update ().
Начинать(): Функция запуска используется для инициализации переменных и объектов. Он вызывается только один раз, когда скрипт включен, непосредственно перед вызовом любой другой функции обновления.
Обновлять(): Это моноведение, вызывается один раз в каждом кадре.
Помимо этих двух, есть много других функций моно поведения, например awake (), fixedUpdate (), lateUpdate () и т. Д.
Чтобы мяч двигался по дороге, прежде всего, вы должны сделать его твердым телом (это идеальное твердое тело, в котором не учитывается деформация). Выбирать Мяч в окне иерархии и нажмите Добавить компонент кнопка в окне инспектора. Наберите твердое тело и нажмите Входить. Твердое тело будет прикреплено к Мяч. Теперь перейдите к скрипту и создайте приватную переменную типа Жесткое тело. Теперь назначьте твердое тело шара этой переменной, которую вы только что создали в скрипте.
частный Rigidbody rb; rb = GetComponent();
Теперь напишите код для движения этого твердого тела. Какая идея? Мяч должен двигаться, когда я нажимаю клавиши со стрелками на клавиатуре. Он должен двигаться вперед при нажатии клавиши вверх, назад при нажатии клавиши вниз и т. Д.
Итак, ввод с клавиатуры, как мне получить этот ввод? Класс Input Unity имеет имя функции GetAxis (), для возврата значения виртуальной оси, идентифицированной именем оси. Создайте две переменные: одну для оси X и одну для ввода по оси Y. Вот как должно быть
float moveHorizontal = Ввод.GetAxis ("По горизонтали");
Теперь создайте переменную Vector3, чтобы получить значения движения.
Vector3 motion = new Vector3 (moveHorizontal, 0.0f, moveVerticle);
Первый параметр - это значение оси x, второй - значение оси y, а третий - значение оси z. Поскольку мяч не будет двигаться в направлении оси Y, присвойте ему ноль. Наконец, добавьте это движение к твердому телу и умножьте на постоянное число для скорости или создайте другую переменную для скорости. См. Полный код ниже
используя систему.Коллекции; используя систему.Коллекции.Универсальный; using UnityEngine; публичный класс Движение: MonoBehaviour публичная скорость плавания; частный Rigidbody rb; // Используйте это для инициализации void Start () rb = GetComponent(); // Фиксированное обновление вызывается после фиксированного количества кадров void FixedUpdate () float moveHorizontal = Input.GetAxis ("По горизонтали"); float moveVerticle = Ввод.GetAxis ("По горизонтали"); Vector3 motion = new Vector3 (-1 * moveHorizontal, 0.0f, -1 * moveVerticle); rb.AddForce (движение * скорость);
Поскольку скорость является общедоступной переменной, вы можете присвоить значение в окне инспектора. Прикрепите этот скрипт к мячу, перетащив его в окно инспектора или нажав Добавить компонент кнопка. Нажмите кнопку воспроизведения и проверьте кодирование, движется ли мяч или нет.
Настройка камеры
Последнее, что вы заметите, это когда вы нажимаете кнопку вперед и мяч начинает двигаться, он вылетает из камеры, поскольку камера неподвижна. Что нам делать? Мы тоже должны переместить камеру? Да, это самое простое. Сделайте камеру дочерним элементом мяча, перетащив основную камеру на мяч.
Заключение
Это было базовое вводное руководство, в котором вы узнали много интересных функций, построение среды и создание сценариев в Unity. Не сомневайтесь, начните создавать свою первую игру с Unity сегодня и наслаждайтесь!