Вся ниже представленная информация есть в Телеграмм и доступна всем по ссылке t.me/ded63russtudio
В ближайшее время данный канал в Дзене поддерживаться не будет!
Настоятельно рекомендуем воспользоваться указанной ссылкой...
Ранее были рассмотрены:
Часть 1 "Запуск и Канвас", https://dzen.ru/a/ZU51Wf4lWB2MYXlG?referrer_clid=1400&
Часть 2 "Игровые элементы", https://dzen.ru/a/ZVIckxHuJl5sFftG?referrer_clid=1400&
Часть 3 "Управление персонажем и игровыми элементами", https://dzen.ru/a/ZVjZIx4b0UGtAExF
Часть 4 "Статистика игры" https://dzen.ru/a/ZXSgh7UrMW9CkKD8
Начнем с таймера.
В папке Scripts создаем новый скрипт с именем Clock и пишем его
Обращаем внимание, что в начале скрипта подключены две новый библиотеки!
После сохранения и выхода в Юнити, платформа сообщит об ошибке, которая высвечивается в закладке Console
На русском это звучит так: "Не удалось найти тип или имя пространства имен "StatLevel" (вам не хватает директивы using или ссылки на сборку?"
Нормальное вполне себе сопротивление Юнити!
У нас пока еще нет ни StatLevel, ни Manager - вот система и ругается.
Это сейчас решим, но для начала для тех, кто не в курсе - если сообщение об ошибке есть, оно подлежит обязательному изучению и никак иначе!
Следует перевести на русский, если английский не вам родной, и понять - чего, собственно, тут не так...
Для этого жмем на сообщение и оно сразу дублируется в нижней части консоли, откуда вполне сносно копируется. Потом открывает любой он-лайн переводчик, вставляем туда инфу и читаем уже нормально.
Итак, нам срочно нужен скрипт StatLevel....Создаем
сохраняем, переходим в Юнити и вот напасть - теперь претензий к StatLevel нет, зато появились претензии к скрипту LovilkaMax... Это нормально!
Создаем новый скрипт LovilkaMax, пишем
И все ошибки пропадают!!!
Вот только это пока совсем даже не середина вопроса.... Тут много чего еще не хватает, но все это можно создать., так сказать, в процессе настройки сриптов.
Первым настраиваем
Clock
В Канвасе у нас есть PanelUp и в ней есть папка Clock (надо иметь ввиду, что хоть названия папки и скрипта совпадают, это ни на что не влиет!).
Жмем на папку Clock и из папки Scripts перетаскивает одноименный скрипт в эту папку
Изучаем поля скрипта и заносим туда нужные элементы из Иерархии.
Second и Minutes из папки Clock, а StcondStat и MinutesStat из папки Stats.
Строки с нулями оставляем как есть.
А что затащить в строку Lov??? Пока нечего
Там должен быть Manager, которого пока еще нет в природе. Создаем в Канвасе пустой объект с именем Manager
В созданную папку пихаем скрипт StatLevel
и, о ужас во мраке ночи!!! - сколько туда надо понапихать... А, главное - где это все брать?
Давайте разбираться в этой каше.
строка Stat - туда папку Stats из Канваса
строка Lovil - это объект, созданный на корзинке Player / korzinka / lovilka - ее и надо все, что с нулями, так и оставляем
с Player все понятно - Player
Ground - прячется в папке BackGround и имеет имя Grownd
строка Zadacha - нет ее, надо делать и срочно!!!
В чем суть этой опции?
Пользователь должен знать - чего и сколько ему надо выполнить, дабы победить. Для этого вверху экрана, чуть ниже верхней строки Канваса вешаем картинку, маленькую, но нужную...
Приступим!
В Канвасе создаем пустой объект с именем Zadacha (фото не прилагаю - и так все понятно).
Далее создаем новую Panel в этой папке по аналогии с панелью статистики и тащим ее на место. Для однообразности стиля делаем ей цвет, как у панели статистики.
Размещаем на созданной панели спрайты Рамки и целого Яйца и Текст для первого уровня, где надо поймать 15 яиц.
Это уже самостоятельная работа (все как в панели статистики) и результат должен быть как-то так
Теперь можно вернуться к скрипту StatLevel в Manager - теперь есть чего запихнуть в строку Zadacha - запихиваем всю папку, не стесняемся
Читаем следующую строну Next - это кнопка для выхода в новый уровень. Впрочем, есть еще кнопки ButtonOut - выход из игры и ButtonAgain - начать снова. Нет пока этих кнопок и в помине. Их надо создавать!
Создаем, ну или ищем что-то подходящее, кидаем в папку Sprites и пользуем в свое удовольствие. Кстати, в последствии нам понадобяться еще кнопки "Начать" и "Правила". Всего пять. Как по мне - кнопки должны отражать общий фон и выглядеть примерно одинаково.
Я для кнопок использовал туже самую доску, что и для лотка и нанес на нее нужные надписи, только и всего. Зато все в одном стиле!
У меня вот так
На данный момент нам нужны три кнопки - "Далее", "Начать снова" и "Выход из игры".
Их мы располагаем в отдельной папке. Создаем пустой объект с именем Button
В эту папку и заносим нужные нам кнопки, выравниваем по размеру и положению на экране, Order in Layer = 2. Будет примерно так
Возвращаемся к скрипту StatLevel в Manager и в нужные строки заносим эти три кнопки
Однако, есть там еще неизвестные позиции - TitleOops (картинка при проигрыше уровня) и Well (Типа Хорошо - Вы выйграли!). Их пока нет и их тоже надо сделать в папку Sprites.
Мне вот так понравилось
Остается закинуть их в Канвас в отдельную папку Image, привести размеры в соответствие, расставить по местам.
Для этого в созданной папке Image создаем новое Image, куда в Инспекторе в строку SourseImage заносим нужный спрайт
Это кнопка победы.
Кнопку проигрыша создаем аналогично и ставим по своему усмотрению
И пусть вас не пугают наложения одних элементов на другие - они никогда вместе на экране не появятся, уверяю вас!!! Такова особенность Юнити складывать и котлеты и мухи в одну тарелку! С этим надо мириться...
Идем опять к многострадальному скрипту StatLevel в Manager и заносим в его строки TitleOops и Well наши созданные картинки
Остаются еще куча строк, блин!!!
Не пугайтесь, друзья, тут уже все просто. Скрипт написан сразу на четыре уровня, так сказать с запасом. Для первого уровня все уже есть - надо добавить лотки...
Из Иерархии в SpawnLeft_1 добавляем lotokLeft. ну и догадайтесь - что добавить в сроку SpawnRight_1
Осталось совсем немного - настроить скрипт LovilkaMax...
Для начала затащим ее в инспектор самой Lovilka
Тоже большой и информативный... но это только с виду - у нас уже все есть для его заполнения.
Начнем!
строка Score остается как есть
строка ScoreMax - ставим значение для первого уровня = 15
строка ScoreObject - из верхней панели канваса ScoreEgg
строка ScoreStat - из папки Ctsts канваса ScoreEggStat
в общем принцип понятен и все уже есть - давайте, сами ищите и ставьте нужные значения из Иерархии в скрипт...
Хотя я несколько не прав!
В обязательном порядке надо добавить звуки: поимка яйца, снежка и шарика. Без этого при попытке запуска игры Юнити выдаст ошибку.
Но это совсем не трудно - скачайте нужные звуки, закиньте их в папку Audio и уже оттуда перетащите звуки в скрипт.
И как уже сказано было выше, скрипт с запасом еще на три уровня вперед. Поэтому строки, начиная со SpawnLeft_2 до SpawnRight_4 заполнять не надо, да и нечем.
Юнити отнесется с пониманием к этому вопросу!
Итак, пришло время протестировать столь титанический труд.
Запускаем игру и проверяем все функции:
* ловим все 15 шаров и видим, что время остановилось, меню победы вышло, появились кнопки меню и картинка победы
* ловим шарик, добиваясь отрицательного результата и видим, игрок пропал, появилась картинка проигрыша, кнопки рестарта и выхода из игры и меню победы не активировано, время остановилось
Ну, что же - все ровно, все работает на этом этапе.
Но, есть еще, над чем стоит потрудиться...
Шарики и снежки катаются под ногами и мешают игроку - раз, нет учета непойманных яиц - два, не работают кнопки меню - три...
И это нормально, все это предстоит еще сделать, но уже в Части 6
На этом Часть 5 окончена.
Далее Часть 6 "Скрипты и все такое - вторая серия"