Найти в Дзене

Простая 2D игра Гонки на Юнити "Ответы на вопросы" (Часть 6)

Вся ниже представленная информация есть в Телеграмм и доступна всем по ссылке t.me/ded63russtudio
В ближайшее время данный канал в Дзене поддерживаться не будет!
Настоятельно рекомендуем воспользоваться указанной ссылкой...

Поступил вопрос от читателя Дмитрия:
"... А как можно уменьшить или увеличить скорость машины игрока?..."

Правильный вопрос!
Надо сделать так, чтобы Игрок мог ускоряться и замедляться для более эффективного сбора монеток.


Как это осуществить?

Первый вариант напрашивается сам собой - поставить ползунок газа и тормоза в одном лице и, используя последний управлять скоростью машины.
Однако тут есть проблема. Где этот ползунок поставить, это раз. И два - придется пользователю в игре пользовать сразу два пальца.... что не есть удобно!
Ко всему прочему, это достаточно большой фронт работы.

Потому воспользуемся более простым и коротким методом:::

В Иерархии есть папка TachZon, в которой есть элемент Tach, вот он

Смотрим на его размеры в Инспекторе поле Трансформ, строка Scale: Х=5 (это ширина экрана), а Y=1 (это высота экрана).
Стало быть надо увеличить высоту экрана, например, до 10.
И чтобы было видно в Сцене в BoxCollider включить кнопку EditCollider

-2

Сразу становиться ясно, куда передвинуть Tach, дабы можно было управлять машиной Игрока с любой точки экрана...
Двигаем

-3

Position X = 0, Y = 5. Если теперь включить кнопку EditCollider, сразу видно
границы коллайдера элемента Tach.

Однако этого будет мало!
Надо обратиться к скрипту PlayerMoov - там прописано только движение по горизонтали и отсутствует движение по вертикали от слова "совсем".
Это надо исправить, дописав в скрипт нужные строки...

Попытайтесь сначала самостоятельно дописать скрипт. Это не трудно:

1. необходимо добавить публичные дробные переменные по позияциям верх и низ
//максимальная позиция сверху
public float up;
//максимальная позиция снизу
public float down;

2. в основном методе добавить проверку положения мышки по вертикали
//проверка позиции мышки и установление границ перемещения
игрока по оси Y
mousePos.y = mousePos.y > up ? up : mousePos.y;
mousePos.y = mousePos.y < down ? down : mousePos.y;

"Все изменения можно тупо копировать и менять в них переменные..."

Вот готовый вариант скрипта

-4

Затем так, как прежде определялось удаление движения машины влево и вправо, определить удаление машины вверх и вниз. Тем, кто не помнит, как это было сделано вот ссылка https://dzen.ru/a/ZD0ubCQa9FnoFurv Смотреть в настройке скрипта PlayerMoov

Определив координаты верха и низа, заносим их в скрипт

-5

Запускаем игру в Юнити и видим - машина Игрока подвластна пальцу пользователя в полном объеме....

Даже больше, чем в полном - еще и задний ход есть!!!

Стало малость интереснее. Спасибо читателю Дмитрию за правильный вопрос!!! Задавай еще - тут много чего можно сделать интересного...

Для тех, кто еще не в теме:

Часть 1 https://dzen.ru/a/ZC72XqomHCK7maPA"Запуск и Канвас"

Часть 2 https://dzen.ru/a/ZDBiSIkRGhr2Rxad "Игровые Элементы"

Часть 3 https://dzen.ru/a/ZD0ubCQa9FnoFurv "Скриптинг"

Часть 4 https://dzen.ru/a/ZD1BcyQa9FnoRR-i "Улучшения игры"

Часть 5 https://dzen.ru/a/ZD6sHovHRBu5sepI "Билдинг"

Есть вопросы - задавайте!!!