Вся ниже представленная информация есть в Телеграмм и доступна всем по ссылке t.me/ded63russtudio
В ближайшее время данный канал в Дзене поддерживаться не будет!
Настоятельно рекомендуем воспользоваться указанной ссылкой...
Но, чтобы Вам, Читатель, было на чем практиковаться, сделаем очередной проект для платформы Андроид со смешным названием "Чубрик и яйца".
Это в прошлом шедевр! Первая игра в СССР, о которой мечтали все без исключения! Мне тогда было уже полных 19 и тем не менее, я тоже хотел обладать этой штукой!!!
Короткий экскур в историю: в 1984 году в магазинах появилась электронная игра "Электроника ИМ-02", она же - "Ну, Погоди!", она же - "Волк ловит яйца".
Этот электронный опус наделал много шума, и он стоил того.
Предлагаю создать аналог этой известной игры для Андроид, несколько ее упростив и одновременно несколько усложнив - вот такая катахреза получается... (катахреза - совмещение несовместимых понятий!)
Начнем по-тихоньку...
Открываем Юнити и создаем новый проект в 2D, присваиваем ему название, какое нравится и запускаем
После загрузки проекта полезно сразу перевести его на ту платформу, под которую и создается проект. У нас это Андроид, вот на него и настроим проект.
Жмем Build Setting
выбираем платформу Android и жмем Switch Platform
Результат будет примерно таким
В закладке Game раскрываем список на котором значится Free Aspect и выбираем нужный нам фасон экрана... В нашем случае это вертикальный экран и я выбираю 18:9 Portrait. В итоге получаем вот так
Перед началом работы следует готовим нужные папки в закладке Project.
Орнунг прежде всего!
Нам понадобяться папки: Audio, Sprites, Prefabs, Scripts... пока хватит!
Жмем на вкладку Project и видим там уже существующую папку Scenes.
Клик правой кнопкой мышки в поле Assets и в меню выбираем Create / Folder
и вносим название папки. Повторите нужное количество раз...
В итоге закладка Project выглядит так
С настройкой Юнити вполне хватит. Займемся Канвасом.
Практический совет: Если вы не уверены, что игра будет работать по тем или иным причинам, то стоит начинать не с Канваса, а с отработки механики игры. Канвас - визуальная составляющая - очки, время, рекорды и прочие причиндалы, которые обычно сбоев не дают.
А, вот механика игры - это совсем другое, более сложное дело...
В поле Hierarchy клик правой кнопкой мышки и выбираем UI / Canvas
Лучше сразу настроить Канвас, так проще. В панели Inspector находим Canvas Scaler и выбираем Scale With Screen Size
Так как у нас вертикальный экран, следует в Reference Resolution поменять местами значения размера по Х и Y. Оставим те же Х = 600, Y = 800.
Все остальное оставляем как есть...
Сохраняем изменения!
В верхней части Канваса мне думается уместно разместить следующие данные:
количество пойманных яиц, количество потерянных яиц и время игры.
В нижней части Канваса - рекорд предыдущего уровня и кнопку "Пауза".
Выполняем...
Для этого нам потребуются спрайты целого яйца, разбитого яйца и кнопка паузы. Тут все на ваш выбор, я уже выбрал и перенес их в папку Sprites
В Канвасе создаем ПКМ Canvas/UI/Image
Жмем на созданный элемент и в
поле SourseImage перетаскиваем спрайт целого яйца
Переименовываем Image в ImageAgg в Иерархии, в Инспекторе придаем ему нужные размеры (у меня 40 на 55) и перетаскиваем его в левый верхний угол Канваса
Сохраняемся и повторяем операцию для разбитого яйца. Между спрайтами оставляем место для будущих численных значений
Создаем эти самые численные значения.
ПКМ Canvas/UI/Text, имя - ScoreEgg, в Инспекторе в Text ставим 0, меняем шрифт и цвет.
Полученный результат пристраиваем к спрайту целого яйца. Готово!
Копируем созданный элемент, даем ему другое имя и пристраиваем к разбитому яйцу. Вот как-то так
Делаем часы, сиречь таймер... Авось сгодится!
Для этого создаем в Канвасе пустой объект и называем его Clock. Перетаскиваем его в левый верхний угол Канваса
даем размер 215*100.
Дублируем, например, ScoreEgg, перетаскиваем его в созданную папку Clock и в поле Text в Инспекторе добавляем еще один 0
и именуем его в Min
Дублируем уже созданный Min и меняем ему функционал на ":", сдвигаем правее.
Повторяем процесс для создания объекта Sec
Верхняя часть Канваса есть. Но, выглядит что-то не очень. Не информативно читается...
Исправим этот недочет.
В Канвасе создаем Panel ПКМ/Canvas/UI/Panel
Даем имя PanelUp, убавляем размер по вертикали так, чтобы ограничить верхнюю часть Канваса. При убавлении панели следует обратить внимание на белые треугольники по краям панели - это якоря. Они должны стоять по краям панели и никак иначе!
Теперь все созданные элементы верхней панели надо сделать дочерними объектами этой панели. В Иерархии выделяем все нужные элементы и тащим их в созданную панель
Займемся якорями всех элементов Панели.
Сама панель уже привязана к верхней части экрана устройства, а вот ее элементы пока нет. Для наглядности выделим элемент ImageAgg и в Инспекторе в поле RectTransform видим красный прицел
Это говорит о том, что элемент привязан к середине панели.
Вот только стоит-то он слева с краю - нажмем на этот прицел и выберем позицию слева/середина
То есть, этим действием мы привязали элемент в нужной части
панели.
Надо сделать так со всеми остальными элементами. ScoreAgg точно также, ImageAggBax и ScoreAggBax оставляем по центру, как есть, папку Clock - справа/середина.
Следует отметить, что пренебрегать якорями нельзя! Размеры экранов телефонов у всех
разные. И чтобы элементы Канваса не разбегались куда попало, их надо фиксировать!!!
Панели остается придать нужный цвет: выделяем панель, в Инспекторе раздел Image / Color. Мне нравится черный и совсем непрозрачный
Сразу стало красивее и читабельнее...
Однако еще не все - есть еще два элемента Канваса, которые будут необходимы: нижняя часть, где будет отображаться рекорд уровня и кнопка Пауза, и меню остановки игры при выигрыше или проигрыше.
Меню пока оставим и доделам его уже после отработки всей механики игры.
А, вот нижняя панель нужна сразу!
Я предлагаю свою домашнюю заготовку.
Для определения фона нижней части Канваса нужен сам фон игры. Я решил создать деревенскую пастораль - все же яйца ловить, стало быть ферма, а ферма - стало быть деревня. Берем нужную картинку и кидаем ее в папку Sprites в Assets
Затем эту картинку тащим в Иерархию, выравниваем размеры картинки чуть больше поля игры и... ву-а-ля.
Теперь фон нижней части Канваса напрашивается сам собой - типа травка с чем нибудь. Я сделал так - нашел, что нравится, закинул в папку Sprites и перетащил в Иерархию
И чтобы элемент был виден в Инспекторе этого элемента в разделе SpriteRenderer в Order in Layer ставим 1, так как фоновая картинка имеет показатель 0.
Дальше все просто - тащим вниз влево, ровняем габариты элемента и дублируем его нужное количество раз для создания фона
Прошу отметить, что все эти манипуляции к Канвасу не имеют пока никакого отношения! Все делается в поле игры!
Если все создателя устраивает, надо привести в порядок поле Инспектора - много там всего уже собралось!
Создаем пустой объект и даем ему имя BackGround и переносим в него фоновую картинку и все элементы земли
Теперь, если свернуть созданную папку, порядка в Иерархии станет не в пример больше!
Остается дополнить саму нижнюю часть Канваса.
Сразу сделаем еще одну панель (можно просто дублировать уже существующую верхнюю, удалив из нее все элементы и уменьшив прозрачность до 0). Имя ей - PanelDown
На фото прозрачность 100% - проведите эксперимент, поиграйте с прозрачностью и выберите нужный вам вариант!
Теперь нужна надпись Рекорд и цифра 0.
Это уже проходили в верхней панели, потому делаем самостоятельно!
На этом этапе Часть 1 будем считать пока законченной.
Читайте следующую Часть 2 "Игровые элементы" (ссылка будет добавлена позже...)