– создается условие if, которое уничтожает объект с помощью команды Destroy при нажатии клавиши Space. При этом используется метод Input.GetKeyDown, который срабатывает, после того как игрок нажал клавишу. В скобках Destroy указана конструкция this.gameObject, которая означает что нужно удалить this (этот) игровой объект (game object), то есть тот самый к которому подключен скрипт-файл.
Теперь запустите сцену и проверьте, что она работает следующим образом:
– В окно Console выводится сообщение “Hello World”;
– Куб (Cube) начинает падать;
– Куб падает на плоскость Plane и останавливается;
– При нажатии на клавишу пробел объект Cube удаляется.
Выводы
После завершения всех пунктов рекомендуется вернуться в начало раздела и еще раз внимательно просмотреть всю последовательность действий. Попробуйте самостоятельно внести модификации в некоторые пункты на свой выбор. Так вы сможете более детально разобраться в устройстве взаимосвязей между объектами, скрипт-файлами и некоторыми элементами интерфейса Unity. Ниже приведен некоторый список возможных изменений в проекте Unity, который вы можете внести, опираясь на те инструкции, которые были даны в этом разделе:
– Сделайте так, чтобы в Console выводилось сообщение “Goodbye World”.
– Добавьте на сцену больше объектов произвольной формы, измените их размер, положение и ориентацию. При добавлении на объекты компонентов Rigibdoby они будут сталкиваться и падать.
– Создайте новый скрипт-файлы, чтобы разные объекты могли быть удалены со сцены при нажатии разных клавиш на клавиатуре.
– Перенесите строку кода print("Hello World"); из фигурных скобок метода Start() в фигурные скобки метод Update(), и проверьте работу сцены. Что изменилось в выводе в командной строке Console? Метод Update обрабатывается каждый кадр, тогда как метод Start отрабатывает лишь один раз при старте сцены.
Часть 2. Создание игрового прототипа
Введение
Создание геймплея (игрового процесса) называют игровым дизайном (англ. Game Design). Обычно перед началом разработки следует определиться с основными требованиями, предъявляемыми к игре. Если говорить более обобщенно, то в списке требований, с которыми следует определиться при начале разработки, можно выделить следующие:
– платформа, под которую осуществляется разработка (Windows, WebGL, Android / iOS),
– экран: разрешение и ориентация,
– длительность игровой сессии,
– система управления,
– однопользовательская или многопользовательская игра,
система монетизации приложения.
Цель нашего практикума по разработке заключается в том, чтобы сделать игру и опубликовать ее на одном из онлайн-ресурсов (подробнее об этом см. Часть 7). Поэтому, наша игра должна будет удовлетворять следующим требованиям:
– платформа: WebGL,
– экран: ландшафтная ориентация,
– длительность игровой сессии: 3–5 минут,
– система управления: легкое управление при помощи мыши и клавиатуры,
– однопользовательская игра,
– система монетизации не предусмотрена.
В игре “Dragon Picker” центральным объектом в игре будет являться дракон, который периодически роняет драконье яйцо. Игровой процесс будет заключаться в том, чтобы ловить летящие вниз объекты. Позднее в игру могут быть добавлены различные виды объектов, одни из которых могут добавлять очки в игре, жизни, либо отнимать их. Для нас важно будет добавить один вид объектов (например, драконье яйцо), а разные виды других объектов вы сможете добавить самостоятельно по аналогии.
Важно отметить, что игровой дизайн имеет малое отношение к графическому дизайну, картинка приведенная выше призвана лишь передать общую атмосферу создаваемой игры. При создании игры именно текстуры и визуальное оформление позволяют описать общую концепцию игрового процесса. С игрой будет интереснее взаимодействовать, когда она представлена не только в виде кубиков и блоков. Для оформления игры используются текстуры, а взаимодействие с объектами описывается такими свойствами (компонентами в Unity), как Collider и RigidBody. Подробнее об этих компонентах вы узнаете в следующих главах.