Разработка игры в Unity. С нуля и до реализации Дмитрий Вадимович Денисов Это руководство по разработке игры, в котором шаг за шагом описывается процесс ее создания с применением языка программирования C# и среды разработки Unity. Материал книги составлен таким образом, что практически каждый ваш шаг будет сопровождать скриншот с понятным описанием последовательности действий. Вы научитесь создавать игровые объекты и описывать логику их работы, создавать элементы ландшафта, настраивать камеру, игровые сцены, графический интерфейс, спецэффекты и звуковые эффекты. Материал практикума завершается публикацией игры на открытой онлайн платформе. После каждой главы в книге даны рекомендации по возможным модификациям игры таким образом, чтобы она получилась не похожей на ту, которую создаем мы. Издание предназначено для тех кто только знакомится с основной разработки игры в Unity. Неважно, как давно вы знакомы с Unity, это руководство, под силу выполнить любому человеку с базовыми навыками работы на компьютере. До встречи за пределами матрицы! Welcome. Дмитрий Денисов Разработка игры в Unity. С нуля и до реализации Посвящается моей любимой жене Насте за ее ум и веру в наши победы, дочери Вике и сыну Паше за их позитив и любовь. Моим родителям Вадиму и Елене, маме моей жены Татьяне, за их заботу и поддержку. I Trust in God Введение Компьютерные игры давно стали частью нашей культуры, через них можно донести мысль до широких масс, они развивают интеллект, реакцию и позволяют пережить целый спектр самых разнообразных эмоций. В этой книге дано полноценное руководство по разработке игры на Unity с нуля. Без лишней воды и теории, только практика, потому что лучше один раз сделать что-то самостоятельно (даже по руководству), чем прочитать множество гайдов и посмотреть сотни видео на YouTube, но ничего не сделать. В отличие от большого количество книг по разработке и программированию, в этой вы найдете только ту информацию, которая непосредственно относится к созданию вполне конкретного игрового прототипа. Это значит, что в книге не будет раздела по основам разработки на C# – языке программирования, который используется для написания сценариев в Unity. С другой стороны, вы получите всю информацию по созданию необходимых скриптов в создаваемой вами игре, а в приведенных листингах будут даны подробные комментарии. Это позволит сконцентрироваться на изучении только тех функций среды разработки, или возможностях языка программирования, которые нужны для выполнения поставленной задачи. Автор убежден, что важнее заложить базовые знания, дав реализовать свой первый проект. А копнуть глубже и разобраться в тонкостях поможет множество других гайдов, статей, учебников и руководств из официальной документации, “разбросанной” по просторам интернета. В практикуме предлагается разработать прототип игры «Dragon Picker», под который может быть адаптировано достаточно большое количество игровых механик и процессов. Смысл работы прототипа достаточно прост – нужно ловить различные предметы. Практикум разбит на основные разделы, в каждом из которых будут описаны основные этапы разработки игры, буквально пара абзацев теории, после чего мы сразу перейдем к разработке (программированию). Вид стартовой страницы готовой реализации приведен на рисунке ниже. Цель практикума заключается в том, чтобы не только дать информацию о разработке прототипа, но и донести до читателя основные подходы к разработке игр такого типа. Другими словами, поняв, как создается Picker, вы без труда сможете сделать свою игру, непохожую на “исходный” прототип, но со схожей механикой. В конце каждой главы будут даны рекомендации по вариантам изменения и доработки базового прототипа. Следуя им вы сможете не только глубже изучить работу с Unity, но и создать свою уникальную игру на основе предложенной базовой версии. Иногда, по ходу выполнения практикума, будет предложено несколько вариантов реализации какой-либо задачи. Это сделано преднамеренно, так как гибкость выбора решения в различных ситуациях является крайне важным навыком для разработчика. Изучая и тестируя различные способы реализации одной и той же задачи, можно достичь наиболее оптимизированной работы игры. По ходу изучения материалов практикума вы увидите, что программный код приводится в виде скриншота и в виде текста (листинга) одновременно. По убеждению автора эта избыточность необходима для простоты восприятия того, что требуется сделать. С одной стороны – вы сможете скопировать код пряма из материалов книги, с другой – будет приведен скриншот из среды разработки с удобным для восприятия представлением структуры кода. Материалы книги не претендуют на гениальность изложенных подходов и решений в области разработки игр, однако они однозначно дадут вам базовые представления о порядке разработки компьютерной игры на Unity. В практикуме показано, как создать собственную игру по принципу конструктора, используя бесплатно доступные текстур-паки, немного строк кода и фантазии. В любом случае процесс создания игры крайне сложен. Достаточно редки случаи, когда один разработчик способен создать достойную реализацию с приятной графикой и звуковыми эффектами. Но мы попробуем. Структура практикума и как с ним работать Практикум разбит на семь основных разделов. Каждый начинается с введения, в котором приводится общее описание того, что будет сделано в разделе. Каждый раздел будет приближать нас к созданию готовой игры и публикации ее на внешнем ресурсе, на котором с игрой сможет означиться большое количество пользователей. Кроме того, каждый раздел завершается выводами, в которых помимо подведения итогов даются рекомендации по доработке игры. При желании вы даже можете вносить в каждом пункте модификации в игру на свое усмотрение и опубликовать решение, не похожее на то, которое создаем мы в рамках этого практикума. В первом разделе мы установим необходимое программное обеспечение для разработки игры на Unity, а также создадим несколько тестовых примеров для проверки корректности работы установленного программного обеспечения. Благодарности При подготовке материалов данного практикума мне помогали несколько человек. Им всем я выражаю признательность и благодарю за потраченное время на поиск и устранение недочетов. Фадеев Виталий, ведущий инженер платформы виртуализации VMware ПАО Сбербанк. Виталий принимал участие в подготовке разделов, связанных с установкой необходимого программного обеспечения и выгрузки игры на внешнюю платформу. Его рекомендации были ценны и позволили сделать пошаговые инструкции более доступнымми для понимания начинающим разработчикам игр. Коровин Илья, Junior C#/Unity программист. Илья проделал весь практикум в самой сырой версии от начала и до конца, дал ряд ценных рекомендаций по объяснению некоторых важных функций, реализованных в разрабатываемой игре. Тагатов Альберт, UX/UI дизайнер, графический дизайнер, да и просто хороший, отзывчивый человек. Альберт сделал так, чтобы печатный экземпляр книги было приятно держать в руках, а электронная версия притягивала своим внешним видом. Благодарю Альберта за разработку прекрасной обложки для издания, с которым вы работаете. Об авторе Автор просто человек, который любит Unity, делать игры и играть в чужие игры. Каких-то больших наград и достижений пока не имеет, но очень к этому стремится. Делает самую разную работу, начиная с создания междисциплинарных физических моделей в программном пакете ANSYS, заканчивая разработкой игр на Unity и работой в должности доцента Уральского Федерального Университета. Стремится объять необъятное и объяснить как можно большему количеству людей, что IT-сфера это просто и интересно, а самое главное – она меняет наш мир с невероятной скоростью. Сообщество В этом разделе приведены некоторые ссылки на внешние ресурсы, которые будут полезны при изучении принципов разработки игры на Unity и станут хорошим дополнением к материалам, данным в этом практикуме. Сайт автора: https://sciencepub.ru/unity-book/ (https://sciencepub.ru/unity-book/). На сайте размещена информация о книге, на нем вы найдете ссылки на ресурсы, которые использовались при создании игры, а также исходные файлы к игре. Если после издания будут обнаружены неточности в описании или опечатки, то о них будет также сообщаться на указанном сайте. Telegram-канал: https://t.me/EpicUnity (https://t.me/EpicUnity). В телеграмме можно задать вопросы автору, или просто обсудить реализацию игры в кругу единомышленников. YouTube-канал: https://www.youtube.com/sciencepub (https://www.youtube.com/sciencepub). На Youtube-канале со временем появится play-лист с разбором дополнительных заданий, которые даются в конце каждого раздела. Пока что вы найдете на канале достаточно много увлекательных видеоматериалов научно-популярной направленности. GitHub: https://github.com/Den1sovDm1triy (https://github.com/Den1sovDm1triy). В отдельном репозитории вы найдете исходники к игре. SIMMER.io: https://simmer.io/@Den1sov (https://simmer.io/@Den1sov). Мини-игра, разработанная в этом практикуме размещена на web-портале, ссылка указана на профиль автора. Свои отзывы и предложения, а также информацию о найденных неточностях и опечатках вы можете отправить на личный e-mail автора: mr.denisov.dv@gmail.com. Посмотреть на готовую реализацию игры Dragon Picker можно по ссылке: https://simmer.io/@Den1sov/dragon-picker (https://simmer.io/@Den1sov/dragon-picker). Часть 1. Установка необходимого программного обеспечения Введение Чтобы создать игру нужны инструменты разработки. В качестве основного инструмента мы будем использовать Unity, а для написания программного кода понадобится среда разработки, например Microsoft Visual Studio. Unity – межплатформенная среда разработки компьютерных игр, которую выпустила и активно продвигает американская компания Unity Technologies. Unity позволяет создавать приложения, работающие на более чем 25 различных платформах, включающих персональные компьютеры, игровые консоли, мобильные устройства, интернет-приложения и другие. В этом разделе вы: – Пройдете регистрацию на портале Unity.com и получите свой Unity ID. – Скачаете Unity Hub и установите среду разработки Unity. – Скачаете Microsoft Visual Studio. – Создадите тестовый проект, в котором проверите корректность работы скачанного и установленного программного обеспечения. 1.1 Установка среды разработки Как было указано ранее, Unity – это среда разработки компьютерных игр и мультимедийных приложений. Для того чтобы начать с ней работу необходимо выполнить действия, описанные в пунктах ниже. 1. Откройте официальную страницу Unity (unity.com (http://unity.com/)) в браузере. Вы сразу попадете на главную страницу компании Unity, где можете ознакомиться с актуальными новостями, поддерживаемыми платформами и предстоящими релизами продуктов компании. 2. На странице найдите кнопку Get Started и нажмите ее: 3. На открывшейся странице вам будет предложено выбрать план подписки. У компании Unity Technologies очень гибкая система, благодаря этому каждый разработчик может подобрать тарифный план под свои задачи. До тех пор, пока доход с вашего проекта за последние 12 месяцев не превышает $100 000 вы можете выбирать подписку Individual Personal (вкладка Individual – Personal – Get Started): 4. После этого вы попадете на страницу Unity Store. Если вы являетесь новым пользователем, нажмите кнопку Start Here: 5. Далее появится всплывающее диалоговое окно, на котором нужно принять лицензионное соглашение. Нажмите кнопку Agree and download. 6. Начнется автоматическая загрузка файла UnityHubSetup. 7. После завершения загрузки файла, запустите его. Начнется процесс установки приложения Unity Hub. Unity Hub – это десктопное приложение, спроектированное для удобной работы пользователей. Из него происходит доступ к экосистеме игрового движка Unity, работа с менеджером проектов созданных в Unity, управление лицензиями и установка дополнительных компонентов. 8. После завершения установки запустите Unity Hub. При первом запуске система предложит вам войти или создать свой аккаунт. Это можно сделать также при помощи популярных социальных сетей: 9. После того, как вы зашли в свой аккаунт Unity, откроется окно приложения Unity Hub. В центральной части приложения указаны проекты (Projects), с которыми вы работаете. Если вы используете Unity впервые, то это окно у вас должно быть пустым, однако очень скоро в нем начнут появляться созданные вами проекты, и Unity Hub будет выглядеть примерно следующим образом: 10. Оставаясь в Unity Hub нажмите кнопку Installs в левом меню и после того, как перейдете в новое окно, нажмите кнопку Add. После этого откроется окно выбора версий Unity для установки. Для начинающих пользователей лучше устанавливать рекомендованный релиз (Recommended Release) последней версии (как правило выбран по умолчанию). В книге используется версия Unity 2020.3.14f1: 11. После выбора последней рекомендованной версии, нажмите кнопку Next. 12. В следующем окне нам предлагается выбрать компоненты редактора (модули). Модули также удобно разделены по платформам, на которые мы хотим создавать игры. Мы будем делать игру для выгрузки на Web-сервис, поэтому установите дополнительно модуль WebGL (поставьте флажок напротив модуля с таким названием). Кроме этого, Unity позволяет делать игры под самые разные платформы. Например, если в дальнейшем вы захотите сделать игру под мобильное устройство, то все что вам потребуется – это установить модули Android Build Support и iOS Build Support: 13. Жмем кнопку Next, на следующей странице принимаем соглашение, поставив галочку. Жмем Done и ожидаем скачивания и установки редактора. На компьютере можно держать несколько разных версий Unity (см. пример ниже): 14. На этом процесс установки закончен. 15. Если в дальнейшем вам понадобятся другие версии среды разработки Unity (например, вы найдете и захотите посмотреть готовые проекты, сделанные под более ранние версии среды разработки), – то вы всегда сможете открыть Unity Hub, перейти во вкладку Install и скачать недостающие версии Unity и модули: Таким образом, Unity Hub является своего рода “точкой старта”, в которой происходит создание новых проектов (вкладка Projects), установка различных версий Unity (вкладка Installs) и т.д. Отмечу, что в Unity Hub можно держать несколько различных версий Unity, если у вас есть потребность работы с проектами, разработанными на ранних версиях. По итогу пошагового выполнения всех указаний из данного раздела, у вас должна быть установлена среда разработки Unity. Также у вас должна быть создана учетная запись на сайте Unity.com. Не теряйте ее, так как через эту учетную запись происходит синхронизация проектов на вашем компьютере и на официальном сайте Unity. Кроме того, учетная запись нужна для работы с некоторыми полезными ресурсами, такими как Asset Store (подробнее об этом см. в разделе 2.2 Импорт игровых персонажей из Unity Asset Store). 1.2 Установка редактора кода Несмотря на то, что Unity является полноценной средой разработки компьютерных игр, вам понадобится отдельное приложение для работы с кодом (для написания скриптов на языке программирования). Написать код для Unity можно даже в обычном блокноте, главное, чтобы он был написан корректно на языке C#. Однако, удобнее использовать специализированные среды разработки. Мы будем использовать Microsoft Visual Studio, установить которую можно как стандартное приложение в системе Windows, либо с помощью Unity Hub. Воспользуйтесь одним из двух предложенных способов установки среды для работы с кодом. Чтобы перейти к скачиванию и установке Microsoft Visual Studio, выполните следующие действия: 1. Перейдите на сайт https://visualstudio.microsoft.com/ru/ (https://visualstudio.microsoft.com/ru/) 2. На сайте вы увидите несколько ссылок на скачивание среды разработки под различные операционные системы. Ниже будет показан пример установки для Windows. Выберите из выпадающего списка Download Visual Studio и выберите версию Community 2019: 3. После этого автоматически начнется скачивание файла установки. После завершения скачивания запустите скачанный установочный файл. 4. Запустится Visual Studio Installer, который некоторое время будет скачивать необходимые файлы. Далее откроется окно с выбором компонентов, необходимых для установки: 5. Среди множества компонентов найдите “Разработка игр с помощью Unity”: 6. После выбора необходимого компонента нажмите “Установить”. Скачивание и установка займет определенное время, которое зависит от производительности вашего компьютера и скорости Интернет-соединения. 7. После завершения установки, возможно, потребуется перезагрузка компьютера (в этом случае рекомендуется согласиться на столь заманчивое предложение и перезагрузиться). 8. После перезагрузки запустите Visual Studio. При первом запуске среда разработки предложит вам выполнить вход под своей учетной записью (см. рисунок ниже слева) и выбрать вид темы (см. рисунок ниже справа): 9. Указанные в предыдущем пункте действия необходимо сделать только один раз, далее среда разработки будет запускаться без каких-либо дополнительных всплывающих окон. 10. На этом установку Visual Studio можно считать законченной. Если среда разработки открыта, то вы можете ее просто закрыть. В дальнейшем мы будем открывать проекты напрямую из Unity и использовать среду разработки Visual Studio для работы с кодом. 11. Установить Visual Studio можно также из Unity Hub. Чтобы это сделать выберите вкладку Installs – Add (можете пропустить этот и следующие два шага, если среда разработки уже была установлена): 12. В появившемся окне сначала предлагается выбрать нужную версию Unity (окно Add Unity Version), а если нажать кнопку Next, то при переходе на вторую страницу (Add modules to your install) можно выбрать установку Visual Studio: 13. Поставьте галочку напротив Microsoft Visual Studio Community 2019. Эта опция доступна как для iOS, так и для Windows. Обратите внимание, если у вас уже установлена Visual Studio, она не будет отображаться в качестве опции с дополнительной установкой. Нажмите Done, начнется скачивание и установка в автоматическом режиме среды разработки Visual Studio. Это программное обеспечение вы будете использовать для редактирования кода. 1.3 Программа “Hello World” и принципы работы в Unity Проверить корректность работы всех установленных программных пакетов можно, написав простейшую программу. По традиции принято создавать программу, которая выводит сообщение Hello World. В нашем примере мы не просто выведем сообщение, но и научимся взаимодействовать с объектами в среде Unity. 1. Чтобы создать первый проект на Unity, откройте Unity Hub и перейдите во вкладку Project. Нажмите New чтобы перейти в окно создания нового проекта: 2. В появившемся новом окне выберите тип проекта – 3D, дайте имя новому проекту, например 01_HelloWorld. Проверьте путь к папке, в которой будет создан проект (здесь скорее важно, чтобы вы осознанно указали папку для проекта и не потеряли его в дальнейшем). После этого нажмите Create: 3. Проект будет создан и открыт в новом окне Unity. На рисунке ниже показано, как выглядит запущенная среда разработки Unity, в данный момент вам может показаться, что она содержит довольно большое количество разнообразных и непонятных окон, но в дальнейшем мы разберемся в том, как они устроены и за что отвечают отдельные элементы среды разработки: 4. Возможно при первом запуске Unity появится сообщение о необходимости обновить встроенный Visual Studio Editor до последней версии (сообщение с желтым восклицательным знаком внизу среды разработки). В этом случае перейдите во вкладку Window – Package Manager, выберите Visual Studio Editor и нажмите Update: 5. Создадим новый C# Script-файл с простой командой, которая выводит сообщение “Hello World”. Для этого на панели Project перейдите в папку Assets, в данный момент в ней находится только одна папка с названием Scenes: 6. Кликните правой кнопкой мыши внутри папки Assets и выберите из контекстного меню Create – C# Script, как показано ниже: 7. Назовите созданный скрипт-файл HelloWorld. Содержимое папки Assets после этого должно выглядеть так, как показано на рисунке ниже: 8. Откройте файл HelloWorld.cs, кликнув по нему дважды. Файл автоматически откроется в Visual Studio Community 2019. Содержимое файла и вид среды разработки показаны на рисунке ниже: 9. В дальнейшем мы будем приводить программный код и в виде скриншотов, и в виде листинга (текстом). Его будет удобнее читать, а в случае использования электронной версии издания – копировать и вставлять части кода в свой проект. В дальнейшем мы разберемся с каждой строкой приведенного выше программного кода. Пока лишь обратите внимание на то, что внутри кода содержится два метода: void Start() и void Update(). – void Start() – это метод, который запускается при старте игры в Unity. Это значит, что команды, написанные внутри фигурных скобок этого метода, отработают один раз при запуске сцены в Unity. – void Update () – это метод, который запускается каждый кадр на сцене. Другими словами, в метод Update() следует писать тот функционал, который требует регулярного обновления в процессе игры. 10. Добавьте строку кода, которая будет выводить сообщение «Hello World!11!». Для этого внутрь фигурных скобок метода void Start(), как показано в листинге ниже (листинг приводится целиком), нужно написать команду print: // Start Code using System.Collections; using System.Collections.Generic; using UnityEngine; public class HelloWorld : MonoBehaviour { void Start() { print("Hello World!11!"); } void Update() { } } // End Code Листинг дублируется ниже в виде скриншота из MS Visual Studio. 11. Скрипт-файл с названием HelloWorld.cs написан. Однако, чтобы он начал работать, нам следует его подключить к одному из игровых объектов внутри сцены Unity. Давайте создадим такой объект, например, простейший куб. 12. Чтобы создать игровой объект “Куб”, на верхней панели быстрого доступа в среде Unity выберите GameObject – 3D Object – Cube: 13. Таким образом, на сцене появится новый игровой объект: 14. Чтобы подключить скрипт HelloWorld.cs к объекту Cube, можно просто перетащить (зажав левую кнопку мыши) скрипт-файл на куб. 15. Теперь, если выделить объект Cube, кликнув по нему левой кнопкой мыши, то можно увидеть, что в правой части среды разработки (окно Inspector) к кубу подключился файл HelloWorld.cs (Script-файл): 16. Теперь, можно запустить сцену и проверить ее работу. Для этого нужно нажать кнопку Run в верхней центральной части среды разработки. 17. После этого сцена запустилась. На ней статично висит куб и кажется, что ничего не происходит, но если перейти в окно Console (в нижней части среды разработки), то можно заметить, что при старте было отправлено сообщение в чат: Вместо функции print, можно использовать функцию Debug.Log(), которая является частью движка Unity. Отличие функции Debug.Log() от функции print() заключается в том, что print() не позволяет увидеть какую-либо информацию, после сборки проект. То есть print() выводит информацию только в консоль среды разработки Unity, тогда как функция Debug.Log() выводит сообщение в специальный файл в папке проекта при запуске готовой игры, содержимое которого потом можно просмотреть. По сути обе эти функции делают одно и тоже, но рекомендуют использовать именно Debug.Log(). В качестве эксперимента вы можете заменить функцию print(“Hello World”) в листинге выше на функцию Debug.Log(“Hello World”). Обычным сообщением в окне консоли сложно удивить, особенно если речь идет о разработке игры. Поэтому давайте добавим еще немного функций для наглядности. Следует отметить, что многие моменты, связанные с разработкой игры, на себя берет Unity без необходимости написания какого-либо функционала. Иногда даже очень сложный функционал в игре можно реализовать просто настройками внутри среды разработки Unity. Продемонстрируем это на примере ниже. 18. Сделаем так, чтобы созданный 3D объект Cube при запуске сцены падал вниз. Для этого выделите объект Cube (клик левой кнопкой мыши в окне Hierarchy), после этого в правой части среды разработки станет активно окно Inspector: 19. Содержание окна Inspector зависит от типа выбранного объекта. В нем содержатся свойства объекта, его параметры, подключаемые Script-файлы и т. д. Нажмите в нижней части окна Inspector кнопку Add Component: 20. После этого появится список с перечнем компонентов, которые могут быть подключены к выбранному объекту Cube. Найдите с помощью поиска компонент Rigidbody и кликните по нему левой кнопкой мыши так, чтобы он добавился в окно Inspector. 21. Rigidbody – это механическое свойство объекта, определенное в базовом движке Unity. Другими словами, если назначить этот компонент объекту, то он начнет вести себя в соответствии с механикой абсолютно твердого тела. Запустите сцену еще раз (нажмите Run) и убедитесь, что теперь объект Cube начинает падать вниз. 22. Создадим еще один объект – плоскость (Plane), которая будет ограничивать падение куба за пределы начальной сцены. Для этого выполните действия, которые уже выполнялись при создании объекта Cube, – в верхней части меню выберите GameObject – 3D Object – Plane: 23. После создания плоскости переместим ее немного ниже уровня объекта Cube. Для этого выделите объект Plane в окне Hierarchy (клик левой кнопкой мыши) и в окне Inspector в верхней части установите значения напротив свойства Transform – Position [X:0, Y: -3, Z:0]: 24. Запустите сцену еще раз. Теперь объект куб (Cube) падает на плоскость (Plane) при старте сцены. 25. Теперь добавим немного интерактивности. Откройте скрипт-файл, который мы создали ранее с именем HelloWorld.cs и напишите туда небольшой функционал, который будет уничтожать объект Cube при нажатии клавиши пробел. В программном коде ниже показано содержимое файла HelloWorld.cs, а жирным шрифтом в комментариях показаны новые строки кода, которые нужно ввести дополнительно: // Start Code using System.Collections; using System.Collections.Generic; using UnityEngine; public class HelloWorld : MonoBehaviour } public GameObject obj; void Start() { print("Hello World!11!"); } void Update() { if (Input.GetKeyUp(KeyCode.Space)) { Destroy(obj); } } } // End Code Листинг дублируется ниже в виде скриншота из MS Visual Studio. В листинг были добавлены следующие строки кода: – создается переменная класса GameObject c именем obj, в которую можно будет поместить объект (как это сделать будет показано далее). Класс GameObject – это встроенный класс Unity, в дальнейшем мы познакомимся с множеством встроенных классов и их методов; – создается условие if, которое уничтожает объект (Destroy(obj)) при нажатии клавиши Space. При этом используется метод Input.GetKeyUp, который срабатывает, после того как игрок отпустил клавишу. Также есть похожий метод Input.GeyKeyDown, который срабатывает сразу при нажатии клавиши. В качестве эксперимента можете изменить метод на Inputy.GetKeyDown. 26. Вернитесь в среду разработки Unity и снова выберите объект Cube. обратите внимание, что теперь в окне Inspector внутри скрипт-файла HelloWorld.cs появилась новая переменная Obj. Стоит отметить, что если бы мы создали приватную (private) переменную объекта, то в инспекторе мы бы ее не увидели (приватную переменную можно увидеть, если сверху строки public GameObject obj добавить [Serialize.Field]): 27. Новая переменная появилась благодаря тем самым строкам кода, которые мы добавили выше. Теперь, если кликнуть на значок “мишени” рядом с надписью None (Game Object) то можно выбрать любой из существующих на сцене объектов, который будет удаляться при нажатии клавиши пробел. Например, выберите объект Cube: 28. Теперь запустите сцену и проверьте, что она работает следующим образом: – В окно Console выводится сообщение “Hello World!11!”; – Куб (Cube) начинает падать; – Куб падает на плоскость Plane и останавливается; – При нажатии на клавишу пробел объект Cube удаляется. 29. В качестве эксперимента замените объект Cube на плоскость Plane внутри скрипта Hello World (Script) в окне Inspector: 30. Проверьте, как теперь отрабатывает сцена после запуска. Что происходит при нажатии на клавиши “пробел”? Теперь, при нажатии клавиши, со сцены должна удаляться плоскость Plane. Выводы После завершения всех пунктов рекомендуется вернуться в начало раздела и еще раз внимательно просмотреть всю последовательность действий. Попробуйте самостоятельно внести модификации в некоторые пункты на свой выбор. Так вы сможете более детально разобраться в устройстве взаимосвязей между объектами, скрипт-файлами и некоторыми элементами интерфейса Unity. Ниже приведен некоторый список возможных изменений в проекте Unity, который вы можете внести, опираясь на те инструкции, которые были получены в этом разделе: – Сделайте так, чтобы в Console выводилось сообщение “Goodbye World”. – Добавьте на сцену больше объектов произвольной формы, измените их размер, положение и ориентацию. – Модифицируйте скрипт-файл таким образом, чтобы разные объекты могли быть удалены со сцены при нажатии разных клавиш на клавиатуре. – Перенесите строку кода print("Hello World!11!"); из фигурных скобок метода Start() в фигурные скобки метод Update(), и проверьте работу сцены. Что изменилось в выводе в командной строке Console? Часть 2. Создание игрового прототипа Введение Создание геймплея (игрового процесса) называют игровым дизайном (англ. Game Design). Обычно перед началом разработки следует определиться с основными требованиями, предъявляемыми к игре. Если говорить более обобщенно, то в списке требований, с которыми следует определиться при начале разработки, можно выделить следующие: Конец ознакомительного фрагмента. Текст предоставлен ООО «ЛитРес». Прочитайте эту книгу целиком, купив полную легальную версию (https://www.litres.ru/pages/biblio_book/?art=66554918&lfrom=196351992) на ЛитРес. Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.