Как научиться делать игры на unity

Первые шаги в Unity

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

Поддержка сообщества в условиях COVID-19: Unity стремится поддерживать сообщество разработчиков в это трудное время. Присоединяйтесь к Create with Code Live — виртуальному онлайн-курсу для учащихся, преподавателей и для всех, кто хочет научиться программированию.

Как научиться делать игры на unity. Смотреть фото Как научиться делать игры на unity. Смотреть картинку Как научиться делать игры на unity. Картинка про Как научиться делать игры на unity. Фото Как научиться делать игры на unity

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

Как научиться делать игры на unity. Смотреть фото Как научиться делать игры на unity. Смотреть картинку Как научиться делать игры на unity. Картинка про Как научиться делать игры на unity. Фото Как научиться делать игры на unity

Установите Unity и начните разрабатывать свою первую игру с простого и понятного шаблона Microgame. Попробуйте быстрые и интересные задания Creative Mods, каждое из которых занимает около 10 минут и позволит вам создать и опубликовать собственную игру на основе шаблона. Не забудьте присоединиться к группе пользователей Microgame, чтобы общаться с такими же начинающими единомышленниками. Мы также будем сообщать вам обо всех специальных предложениях!

Самый веселый способ изучения Unity
Установите Unity и научитесь основам игровой разработки благодаря Unity Game Dev Courses. Начните с изучения основ, а затем выберите свою специализацию: художественное оформление, программирование или дизайн игр. В результате изучения курса вы создадите великолепную игру Swords and Shovels!

Получите доступ к Unity Game Dev Courses БЕСПЛАТНО
Курсы Unity Game Dev теперь бесплатны для пользователей Unity Plus
Подробнее

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

Скидка 20% в Asset Store
Ускоряйте разработку и издавайтесь быстрее, благодаря лучшим ресурсам и инструментам из Unity Asset Store. Благодаря скидке 20% на тысячи лучших и самых популярных ассетов вы приблизитесь к финишной прямой намного быстрее, чем мечтали.

Unity Success Advisor
Забудьте о неразрешимых проблемах. Став подписчиком, вы получите эксклюзивный доступ к услугам специалистов Unity, которые помогут вам:

Источник

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

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

Как научиться делать игры на unity. Смотреть фото Как научиться делать игры на unity. Смотреть картинку Как научиться делать игры на unity. Картинка про Как научиться делать игры на unity. Фото Как научиться делать игры на unity

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

Как научиться делать игры на unity. Смотреть фото Как научиться делать игры на unity. Смотреть картинку Как научиться делать игры на unity. Картинка про Как научиться делать игры на unity. Фото Как научиться делать игры на unity

Увлекательные и полезные материалы по Unity на канале Brackeys будут интересны как начинающим, так и опытным разработчикам. Brackeys начал выпускать видеоуроки на YouTube в 2012 году. Небольшая команда занималась созданием игр в Unity с детства.

В этом видео под названием «Разработка первого шутера в Unity с помощью FPS Microgame!» рассказывается об одном из вариантов Unity Microgame, которые помогут новым пользователям приступить к работе над новыми проектами как можно быстрее. Brackeys загрузит сцену, покажет, как устроен пакет FPS Microgame, а также продемонстрирует возможности его настройки по собственному вкусу.

Как научиться делать игры на unity. Смотреть фото Как научиться делать игры на unity. Смотреть картинку Как научиться делать игры на unity. Картинка про Как научиться делать игры на unity. Фото Как научиться делать игры на unity

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

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

В ролике «Как стать игровым разработчиком в 2020 году!» он рассказывает об особенностях менталитета и о практическом опыте, которыми отличаются игровые разработчики.

Как научиться делать игры на unity. Смотреть фото Как научиться делать игры на unity. Смотреть картинку Как научиться делать игры на unity. Картинка про Как научиться делать игры на unity. Фото Как научиться делать игры на unity

Томас Браш — успешный инди-разработчик. Его игра Pinstripe, выпущенная в 2017 году, завоевала множество наград и получила оценку 5 из 5 в журнале Time. Выход его новой игры Neversong запланирован на май 2020 года.

Томас разрабатывает свои игры в Unity, и они отличаются великолепным визуальным стилем и красивой 2D-графикой. В ролике «Как разработать 2D-игру» он дает рекомендации по структуре игры и настройке Unity Editor, а также предлагает весьма изобретательные методы постановки камер, методы хранения файлов и советы по созданию ассетов.

Как научиться делать игры на unity. Смотреть фото Как научиться делать игры на unity. Смотреть картинку Как научиться делать игры на unity. Картинка про Как научиться делать игры на unity. Фото Как научиться делать игры на unity

Jonas Tyroller’s Youtube channel documents his journey into game development. Jonas dabbled in programming and game design in university, but he is essentially self-taught and proficient with Unity. You can watch his progress – from creating a simple game prototype with a few fun mechanics to contributing to a full city sim, among other solo projects.

In “How to make your first game today!” Jonas introduces you to the Editor and helps you build your first 3D game. That’s right: if you follow the instructions (which still apply to current builds of Unity), at the end you will have a playable game.

Как научиться делать игры на unity. Смотреть фото Как научиться делать игры на unity. Смотреть картинку Как научиться делать игры на unity. Картинка про Как научиться делать игры на unity. Фото Как научиться делать игры на unity

Для новичков у нас есть множество полезных обучающих материалов о Unity на YouTube.

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

Эти учебные материалы могут помочь (и обязательно помогут) вам приступить к творчеству в Unity. Вам останется лишь одно: открыть Editor и начать работу. Кто знает, к чему это приведет? Возможно, однажды вы тоже будете рассказывать другим начинающим разработчикам как создавать невероятные игры.

Источник

Основы многопользовательской игры на Unity3D

Как научиться делать игры на unity. Смотреть фото Как научиться делать игры на unity. Смотреть картинку Как научиться делать игры на unity. Картинка про Как научиться делать игры на unity. Фото Как научиться делать игры на unity

Я, как и многие из вас, большой поклонник многопользовательских игр. В них меня прельщает в основном дух соревнования и возможность приобретать улучшения, накапливая достижения. Да и сама идея выхода в свет все большего количества игр данного типа побуждает к действию.
С недавнего времени я и сам взялся за разработку собственного проекта. И поскольку на Хабрахабре статей на эту тематику не нашел – решил поделиться своим опытом написания многопользовательской игры на движке Unity3D. Также хочу рассказать о компонентах Network и NetworkView, атрибуте RPC и встроенных методах-ивентах. В конце статьи подан пример игры и, разумеется, сам проект для Unity. Итак…

Класс Network

Данный класс нужен для организации соединения «клиент-сервер». Основные функции: создание сервера, подключение к серверу, создание сетевого экземпляра префаба.

Основные методы:

Network.Connect (string host, int remotePort, string password = «») – выполняет подключение к серверу host с портом remotePort и паролем password. Метод возвращает перечисление NetworkConnectionError.

Network.InitializeSecurity() – вызывается перед Network.InitializeServer() для защиты от читерства. Подробности в официальной документации. Не вызывать на клиенте!

Network.Instantiate(Object prefab, Vector3 position, Quaternion rotation, int group) – создает экземпляр префаба prefab в сети в позиции position с поворотом rotation и группой group. Возвращает весь созданный объект, с которым после создания можно выполнить дополнительные действия. Подробности – далее в статье.

Основные свойства:

bool Network.isClient и bool Network.isServer – определяют, является ваша игра сервером либо клиентом. Оба свойства являются false, если не был создан сервер или не было подключения к серверу.

string Network.incomingPassword – свойство задает пароль для входящих подключений.

NetworkPlayer Network.player – возвращает экземпляр локального игрока NetworkPlayer.

NetworkPeerType Network.peerType – возвращает текущее состояние подключения: Disconnected (отключен), Server (запущен как сервер), Client (подключен к серверу), Connecting (попытка, в процессе подключения).

NetworkPlayer[] Network.connections – возвращает всех подключенных игроков. На клиенте возвращает только игрока сервера.

Основные ивенты (для унаследованного от MonoBehaviour):

OnConnectedToServer() – вызывается на клиенте при успешном подключении к серверу.

OnDisconnectedFromServer(NetworkDisconnection info) – вызывается на клиенте при отключении от сервера и на сервере при завершении подключений Network.Disconnect(). В info содержится причина отключения: LostConnection (потеря связи) и Disconnected (при успешном отключении).

OnFailedToConnect(NetworkConnectionError error) — вызывается на клиенте при ошибке подключения. error содержит ошибку типа NetworkConnectionError.

OnNetworkInstantiate(NetworkMessageInfo info) — вызывается на клиенте и сервере, если был создан новый экземпляр методом Network.Instantiate(). Содержит info типа NetworkMessageInfo.

OnPlayerConnected(NetworkPlayer player) — вызывается на сервере при успешном подключении клиента и содержит player типа NetworkPlayer.

OnPlayerDisconnected(NetworkPlayer player) — вызывается на сервере при отключении клиента и содержит player типа NetworkPlayer.

OnServerInitialized() — вызывается на сервере, после того как сервер был успешно создан.

OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info) — важный ивент для синхронизации компонента с сетью. Подробности – далее в статье.

Класс NetwokView
Основные методы:

networkView.RPC(string name, RPCMode mode, params object[] args) — вызывает удаленную процедуру name, mode определяет получателей, args – аргументы для передачи процедуре.

networkView.RPC(string name, NetworkPlayer target, params object[] args) – то же, что и предыдущий метод, однако выполняет отправку конкретному игроку NetworkPlayer.

Основные свойства:

bool networkView.isMine – свойство, определяющее, является ли объект локальным. Весьма часто используется для проверки владельца объекта.

Component networkView.observed – компонент, который будет синхронизироваться. Если это скрипт, то он должен содержать метод OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info), упомянутый выше.

NetworkPlayer networkView.owner – свойство, возвращающее владельца объекта.

NetworkStateSynchronization networkView.stateSynchronization — тип синхронизации: Off, ReliableDeltaCompressed, Unreliable.

NetworkViewID networkView.viewID — уникальный идентификатор в сети для NetworkView.

Атрибут RPC
Метод OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info)

Данный метод используется для синхронизации компонента в сети. Он вызывается всякий раз при получении либо отправке данных по сети.
Вот типы данных, которые могут быть получены/отправлены методом Serialize: bool, char, short, int, float, Quaternion, Vector3, NetworkPlayer, NetworkViewID.
Для проверки, идет ли прием либо передача, используются свойства isReading или isWriting.

Привожу пример использования:

Данный пример не идеален, поскольку при его работе наши объекты будут «дергаться». Чтобы избежать этого, нужно воспользоваться интерполяцией. Подробнее – далее в статье.

Интерполяция

Как научиться делать игры на unity. Смотреть фото Как научиться делать игры на unity. Смотреть картинку Как научиться делать игры на unity. Картинка про Как научиться делать игры на unity. Фото Как научиться делать игры на unity

Подробнее о методах оптимизации синхронизации по сети смотрите на сайте разработчиков: Valve Developer Community — Source Multiplayer Networking

Пример многопользовательской игры

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

Создаем скрипт ServerSide.cs и пишем туда следующее:

Теперь создаем скрипт клиента ClientSide.cs:

Таким образом, клиентская и серверная логика есть, теперь для нее нужно сделать управление MainMenu.cs:

Управление сетью создано. Далее пишем управление игроком PlayerControls.cs. В данном примере я использую другой способ применения компонента NetworkView:

Знаю, что синхронизация и управление должны находиться раздельно, но для примера я решил объединить их. Как вы заметили, здесь NetworkView создается во время инициализации скрипта. На мой взгляд, это более удобный способ для защиты от возможного «забыл добавить» (разумеется, если не написано RequireComponent( typeof( Rigidbody ))), а также уменьшает в инспекторе количество компонентов на объекте.
К примеру, у меня был случай: когда, на первый взгляд, все было сделано правильно, однако мой скрипт не делал интерполяцию, и все мои действия в синхронизации игнорировал. Так вот ошибкой оказалось то, что Observed был не моим скриптом, а трансформ объекта.

Итак, теперь у нас есть все необходимые скрипты для написания мини-игры.
Создаем пустой объект и назначаем ему скрипты MultiplayerMenu, ServerSide, ClientSide.
Создаем плоскость и немного опускаем.
Создаем префаб игрока (в моем примере это будут шары). Создаем объект «сфера», назначаем ему скрипт PlayerControls и добавляем в префаб. Префаб перетягиваем на ClientSide в поле Player Prefab.
На этом все, компилируем проект (не забывая в настройках игрока включить Run in background) и запускаем несколько раз. В одном из окон жмем сервер, на остальных – клиент, и смотрим на результат.

Ссылка на проект.
*В проекте могут быть логические ошибки, но на суть данной статьи они не влияют.

Всех благодарю за внимание!
Желаю успехов в создании многопользовательских игр!

Источник

Создаем игру для WebGL с помощью Unity 5 и JavaScript

Как научиться делать игры на unity. Смотреть фото Как научиться делать игры на unity. Смотреть картинку Как научиться делать игры на unity. Картинка про Как научиться делать игры на unity. Фото Как научиться делать игры на unity

Unity – это кроссплатформенный игровой движок, позволяющий создавать игры для ПК, консолей, мобильный устройств и веб-сайтов. Последняя версия движка (Unity 5) имеет возможность экспорта в WebGL, благодаря чему разработчики могут без труда публиковать свои игры в вебе. Как следует из названия, данный экспортер использует WebGL – JavaScript API для рендеринга интерактивной компьютерной 3D графики, а также asm.js – подмножество JavaScript, которое было разработано компанией Mozilla и преподносилось как «язык ассемблера для веба». Больше информации о Asm.js и WebGL для Unity и Unreal Engine доступно здесь.

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

По окончании урока у вас получится вот такая игра (для просмотра потребуется браузер с поддержкой WebGL). Проект также доступен для скачивания из репозитория на GitHub.

Несколько слов о JavaScript в Unity

Говоря о JavaScript в Unity, мы подразумеваем нечто вроде диалекта JS под названием UnityScript. И хотя сами специалисты из Unity называют этот язык JavaScript, более скептично настроенные пользователи интернета полагают, что поддержка JavaScript в Unity – это маркетинговая уловка. Так или иначе, нужно сразу сделать оговорку, что UnityScript не соответствует спецификации ECMAScript, и никто даже не делает попытки устранить эти несоответствия.

Устанавливаем Unity

Для начала нам нужна рабочая версия Unity, скачать ее можно здесь. Файлы установки доступны для Windows и для Mac OS X. Пользователи Linux могут запустить Unity с помощью Wine или использовать другой удобный способ.

Как научиться делать игры на unity. Смотреть фото Как научиться делать игры на unity. Смотреть картинку Как научиться делать игры на unity. Картинка про Как научиться делать игры на unity. Фото Как научиться делать игры на unity

После установки можем приступать. Откроем Unity и создадим новый 3D проект.

Как научиться делать игры на unity. Смотреть фото Как научиться делать игры на unity. Смотреть картинку Как научиться делать игры на unity. Картинка про Как научиться делать игры на unity. Фото Как научиться делать игры на unity

Настраиваем проект

Теперь, когда программа открылась, давайте кратко пройдемся по основному интерфейсу:

Как научиться делать игры на unity. Смотреть фото Как научиться делать игры на unity. Смотреть картинку Как научиться делать игры на unity. Картинка про Как научиться делать игры на unity. Фото Как научиться делать игры на unity

Создаем героя

Герой в нашей игре будет прыгать вверх с одной платформы на другую. Если ему не удастся вовремя заскочить на одну из них, он упадет в пропасть и проиграет. Мы начнем с создания героя. Поскольку игра будет от первого лица, внешность героя не имеет никакого значения, и мы можем использовать вместо него стандартную сферу. Плюс в том, что сфера быстро создается, и ее физические характеристики отлично подходят для прыжков по платформам. Добавим ее, выбрав Create в панели Hierarchy и отредактировав следующие параметры во вкладке Inspector:

Как научиться делать игры на unity. Смотреть фото Как научиться делать игры на unity. Смотреть картинку Как научиться делать игры на unity. Картинка про Как научиться делать игры на unity. Фото Как научиться делать игры на unity
Нажмем кнопку Play, чтобы проверить результат. На экране должно появиться 3D пространство со сферой на фоне горизонта.

Чтобы сфера падала, у нее должен быть вес. Выходит, нам нужно добавить к ней новый компонент, нажав в панели Inspector кнопку Add Component и выбрав Rigidbody. Так как мы не хотим, чтобы сфера вращалась, нужно зафиксировать ее положение с помощью компонента Rigidbody. Для этого откройте Constraints и выберите все оси в строке Rotation. Проиграйте сцену еще раз и вы увидите, что теперь сфера падает.

Как научиться делать игры на unity. Смотреть фото Как научиться делать игры на unity. Смотреть картинку Как научиться делать игры на unity. Картинка про Как научиться делать игры на unity. Фото Как научиться делать игры на unity

Чтобы предотвратить бесконечное падение сферы, создадим нечто вроде платформы. Для этого добавим плоский куб со значением Scale.Y, равным 0.1. Проиграйте сцену еще раз и убедитесь, что сфера успешно приземляется на платформу. Но, стоит отметить, всё это выглядит не очень естественно. Как же заставить сферу подпрыгивать? Для этого нам пригодятся физические материалы.

Наделяем сферу физическими свойствами

Прежде всего, создадим для нашей сферы физический материал, который позволит ей отпрыгивать от поверхности соприкосновения. Для этого нужно создать в папке Assets новую подпапку Materials. Внутри этой подпапки создадим новый физический материал и назовем его Bouncy_Sphere. Вот значения, которые мы должны указать в панели Inspector:

Dynamic Friction: 10
Static Friction: 10
Bounciness: 1
Friction Combine: Maximum
Bounce Combine: Maximum

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

Dynamic Friction: 0.9
Static Friction: 0.9
Bounciness: 1
Friction Combine: Average
Bounce Combine: Multiply

Чтобы не запутаться, переименуем наш плоский куб-платформу на Platform, кликнув по нему дважды в панели Hierarchy. Теперь, начав игру, вы увидите, что сфера с каждым разом подпрыгивает выше.

Также создадим новый стандартный материал под названием Platform, чтобы появилась возможность дать платформе какой-нибудь цвет. Создав его, вставьте цвет #C8FF00 напротив значения Albedo, а затем перетащите этот материал на элемент платформы. Теперь платформа должна стать желтой.

Добавляем вид от первого лица

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

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

Настраиваем управление в игре

Наша цель – использовать мышь или трекпад, чтобы позволить игроку двигать сферу в определенном направлении. С этой целью мы напишем первый скрипт. Как и в случае с Rigidbody, скрипт добавляется к элементу игры в качестве компонента. В нашем примере мы добавим JS-скрипт под названием InputController к камере. Так же, как мы это делали со сценой и материалами, создадим в панели Project новую папку под названием Scripts, в которой и будет находиться наш скрипт. Двойной клик по новому скрипту откроет стандартный для Unity редактор MonoDevelop. Его можно заменить на любой другой редактор (Unity > Preferences > External Tools), но сейчас это не имеет никакого значения.

Как видно, в скрипте уже имеется какой-то код. Прежде всего, создадим несколько переменных под первой строкой с текстом #pragma strict (включает принужденное определение типов в Unity):

Первой идет общедоступная переменная, принадлежащая к типу GameObject. Она обозначает сферу. Вернемся к Unity, по прежнему оставив камеру выбранной. Мы увидим, что эта общедоступная переменная находится рядом с пустым полем для ввода. Перетащим сферу на данный участок, таким образом присвоив значение этой переменной.

Две остальные переменные – закрытые, им будут присвоены значения в функции Start. Эта функция вызывается всего один раз, после запуска сцены. Обоим закрытым переменным будет присвоена половина ширины и высоты экрана соответственно. Для этого мы используем встроенный класс Screen:

Единственное, что осталось реализовать в скрипте InputController – получение данных о положении и передвижении мышки. Для этого мы воспользуемся функцией Update, которая вызывается для каждого кадра:

Каждая из двух новых переменных x и z обозначает соответствующую ось. Когда мы смотрим вдоль оси y, мы видим горизонтальную ось x и вертикальную ось z. Мы будем менять положение сферы на этих осях в зависимости от данных, полученных с мышки. Нам понадобится статическая переменная Input.mousePosition, возвращающая двухмерный вектор. Вектор, нулевое значение которого приходится на нижний левый угол, должен переместиться в нашей системе координат на середину экрана. Следующий фрагмент кода демонстрирует такую трансформацию координат. Наконец, вызовем функцию setHeroPosition с обоими рассчитанными значениями в качестве аргументов. Мы запишем эту функцию в новый скрипт HeroController, привязанный к сфере:

Проверим, как работает наш код: подвигаем мышку или трекпад, чтобы сфера упала с платформы.

Реализуем процедурное создание платформ

Для автоматического создания платформ нам нужно нечто вроде шаблона платформы. В Unity такие шаблоны называются префабами. Чтобы создать префаб, необходимо перетащить платформу из панели Hierarchy в новую подпапку Prefabs папки assets. Префабы легко распознать в панели Hierarchy по голубому цвету. Все платформы, за исключением первой, будут создаваться с помощью нового скрипта GameManager, привязанного к камере. Сначала в скрипте обратимся к необходимым переменным:

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

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

Добавляем меню игры

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

Для отслеживания состояния игры мы воспользуемся новой функцией:

В данном случае мы используем класс Application, позволяющий с помощью метода LoadLevel загрузить новую сцену Menu. Для этого сначала создадим сцену, выбрав File > New Scene, и сохраним ее под названием Menu. Затем нам нужно добавить обе сцены в процесс сборки. Настройки сборки доступны во вкладке File > Build Settings. Не закрывая сцену с меню, нажмите кнопку Add Current и добавьте сцену в настройки сборки. Повторите то же действие с открытой сценой уровня. Теперь по завершении игры у вас на экране будет появляться только что созданная сцена с меню игры.

Добавляем кнопку для начала игры

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

Clear Flags: Solid Color
Background: #000
Width: 200
Height: 60

Чтобы добавить кнопку, мы воспользуемся элементами пользовательского интерфейса Unity, которые могут быть добавлены как 3D элементы через панель Hierarchy. После добавления кнопки интерфейса в Hierarchy должны появиться следующие элементы: EventSystem и Canvas вместе с дочерним элементом Button и его дочерним элементом Text.

Canvas – это контейнер для всех элементов интерфейса, его можно сделать в некотором смысле адаптивным. Для этого нужно в панели Inspector переключить настройку Canvas Scaler: UI Scale Mode с Constant Pixel Size на Scale With Screen Size. Теперь можно менять положение кнопки:

Убрав исходное изображение кнопки и выставив ее цвет на #C8FF00, мы придадим меню чуть более приличный вид. Теперь поменяем текст в элементе Text на PLAY PREJUMP и выставим шрифт 16-го кегля. Чтобы кнопка заработала, воспользуемся новой функцией, которую мы добавим в новый скрипт UIController для элемента Button. Скрипт состоит всего из одной функции, загружающей сцену уровня:

Эту функцию можно применить в опциях кнопки в панели Inspector. В настройках компонента Button (Script) можно сделать так, чтобы функция выполнялась, когда пользователь кликает данный компонент. С этой целью мы добавим новую функцию к событию On Click (), нажав иконку +. Теперь можно перетащить саму кнопку на поле ввода. Затем выберем только что написанную функцию из скрипта UIController (UIController.StartGame).

Как научиться делать игры на unity. Смотреть фото Как научиться делать игры на unity. Смотреть картинку Как научиться делать игры на unity. Картинка про Как научиться делать игры на unity. Фото Как научиться делать игры на unity

Публикуем проект как браузерную игру для WebGL

С Unity вы можете экспортировать ваш проект как приложение для WebGL. Откройте настройки сборки и выберите WebGL в качестве платформы. Затем подтвердите выбор, нажав кнопку Switch Platform. После этого остается только нажать кнопку Build и выбрать название для игры. По завершении сборки откройте html-файл с помощью любого браузера, поддерживающего WebGL.

Как научиться делать игры на unity. Смотреть фото Как научиться делать игры на unity. Смотреть картинку Как научиться делать игры на unity. Картинка про Как научиться делать игры на unity. Фото Как научиться делать игры на unity

Дальнейшие шаги

Конечно же, нашу небольшую игру можно улучшить. К примеру, добавить подсчет очков, разные типы платформ, дополнительные методы ввода, звуки и так далее. Главное, что мы увидели в данном уроке, это то, что кроссплатформенный игровой движок Unity предоставляет хорошее сочетание WYSIWYG-редактора и возможностей скриптов, создаваемых на похожем на JavaScript языке. В зависимости от конкретных требований проекта, Unity может стать достойной альтернативой WebGL-фреймворкам.

А вы используете Unity в ваших проектах? Есть ли у вас примеры интересных игр, написанных с помощью этого движка? Жду ответов в комментариях под записью.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *