Найти тему

Создаем платформер для Андроид Часть 5 "Собираем Статистику в кучу"

Итак!
Статистика уровня должна включиться после того, как Игрок зайдет в Дверь, которая в свою очередь будет открыта исключительно, как Игрок наберет нужное количество очков, собирая монетки. При этом должно остановиться время прохождения уровня и все это отразиться и в рабочем поле и в Статистике.
Задача однако! На самом деле все уже не так сложно. Есть практически все. Остается связать.

Для начала открываем скрипт TakeCoin и снимаем двойной флеш, где он был проставлен ранее - скрипт заработает полностью.
Смотрим в скрипт на Игроке - появилось строка ScoreStat и что характерно пустая. Туда следует перетащить Result из Panel / Info

Производим аналогичную операцию в скрипте Clock
Соответственно вносим нужные элементы в строки скрипта (скрипт висит на объекте Timer, если кто потерялся...) Нечего пока занести в строку Upss. Давайте разберемся с этой строкой...

-2

Подразумевается следующее - если Игрок собирал монетки 1 час!!!, что в принципе просто нереально, вылетает наш Upss и останавливает игру с предложением начать уровень снова. Стоит заметить, что скрипт Clock не имеет команд на остановку игры и нужный скрипт надо еще создать и связать со скриптом Clock.
В качестве факультатива рассмотрим этот процесс в самом конце туториала в Части "Улучшения игры". А пока закомментируем в скрипте все, что связано с Upss и пропустим это событие.

Запускаем игру, собираем монетки, касаемся двери и, как видим, значения времени и результат в стате отражаются ровно

-3

С Рекордом пока малость повременим и сделаем его позже.

Теперь поработаем с кнопками...
Начнем с кнопки Out - Выход из игры. Для этого пишем совсем малюсенький скрипт OutGame, располагая его в папке Scripts

-4

В Канвасе создаем пустую папку Manager и закидываем скрипт Out туда

-5

Как видим, в скрипт ничего тащить не надо, вот всегда бы так!!!
Раскрываем Canvas / OutPanel / Buttons / Out и в самом низу Инспектора видим пустое поле On Click. Жмем + и в строку None Object тащим Manager, раскрываем поле NoFunction, выбираем OutGame / OnClick

-6

Готово. Однако следует отметить, что на Андроиде все будет работать, а вот в Юнити нажатие на эту кнопку ничего не даст.

Дабы не пугаться, сделаем кнопку Again - Снова.
Пишем скрипт AgainGame

-7

Прошу обратить внимание на добавленную библиотеку using UnityEngine.SceneManagement, без которой ничего не выйдет...
Скрипт вешаем опять-таки на Manager.

Но это еще не все!

Если в поле Project посмотреть папку Scenes, то в ней всего только Level_1 и стало быть переходить пока некуда. Создаем в указанной директории новую сцену с именем Level_2 (ПКМ / Create / Scene)

-8

Пусть она остается вся пустой. И вот что это дает:
Жмем File / BuildSetting, открывается соответствующее окно, где в разделе Scenes in Build есть только Scenec/Level_1, которая имеет индекс "0".
Перетащим в это поле вновь созданную Сцену, у которой сразу будет другой индекс "1"

-9

Запомним индексы Сцен и закроем BuildSetting
Открываем в Иерархии Manager и видим в Инспекторе наш скрипт с единственной строкой Scene. Так как это возврат к этому уровню, а он имеет индекс "0", то ничего тут менять не надо.

Остается повторить операцию в поле On Click кнопки Again, выбрав соответствующий скрипт и команду в нем

-10

Теперь, если запустить игру и после выпадения статистики нажать кнопку Again, игра начнется снова. Проверяем...

Вот теперь можно сделать переход на следующий уровень.
В принципе можно воспользоваться уже готовым спритом AgainGame, но в последствии есть риск запутаться в их применениях. Поэтому лучше и правильнее сделать клон этого скрипта и назвать его NextGame. Создаем и копируем в него содержимое AgainGame, не забывая про библиотеку UnityEngine.SceneManagement


Копировать все тупо не надо!!! Копируем отдельно библиотеку и тело скрипта, не затрагивая его названия - иначе Юнити будет ругаться матерно

-11

Дальше все уже понятно - скрипт на Manager и в строке Scene ставим 1, индекс 2-го уровня.
Запускаем игру, побеждаем и в статистике жмем Next и любуемся красивым синим прямоугольником в закладке Game.... Работает!

Таким образом со статистикой уровня разобрались полностью.

Часть 1 "Концепция игры" https://dzen.ru/a/ZGJVMZKsTRJ1IRxW

Часть 2.1 "Поиск и размещение" https://dzen.ru/a/ZGNW53IB3hJhklbs

Часть 2.2 "Настройка игровых элементов" Игрок, Задний фон, Кирпичики, Поле Канваса, Земля, Фон Канваса, Границы игрового поля https://dzen.ru/a/ZGTlEXyZok4KNcEk

Часть 2.3 "Настройка игровых элементов"
Платформы, Кирпичики, Кнопки управления, элементы Канваса
https://dzen.ru/a/ZG3owStvrRb4xElN

Часть 3.1 "Игрок - движение и прыжки" https://dzen.ru/a/ZJWHrGZylAw34K1k

Часть 3.2 "Игрок. Собиратель монеток. Дверь" https://dzen.ru/a/ZJrfjBv0yCUeuzCB

Часть 4 "Время, Статистика игры" https://dzen.ru/a/ZMotF8kxti_l2c5Q

Далее Часть 6 "Архитектура уровня" https://dzen.ru/a/ZZabxCoEzhElsLtF