Ловец
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 50 из 85.
В этой главе мы создадим небольшую игру «Поймай звезду», добавляя по одной возможности за урок: звезда падает, ты двигаешь ловушку под ней влево и вправо, за каждое пойманное падение начисляются очки, а следующая звезда падает быстрее; после трёх промахов игра заканчивается. Всё это реализовано в одном скрипте Catcher, который находится на ловушке. Первая возможность — движение: ловушка перемещается с помощью клавиш со стрелками и никогда не покидает пол.
Чтобы удерживать число в заданных пределах, используется Mathf.Clamp(value, min, max). Если значение меньше min, метод возвращает min; если оно больше max — max, а в остальных случаях — само значение. Эта камера следует за игроком вверх по башне, но её высота остаётся в пределах от 2 до 12:
[SerializeField] private Transform player;
void Update()
{
float y = Mathf.Clamp(player.position.y, 2f, 12f);
transform.position = new Vector3(transform.position.x, y, transform.position.z);
}Clamp возвращает новое число и сам по себе ничего не меняет, поэтому присвой результат. Применяй Clamp после всех изменений за кадр и перед тем, как записать позицию обратно, — тогда объект ни в одном кадре не окажется за пределами.
Задание
СреднеДобавь движение ловушке — синей полоске.
- В
Update()скопируйtransform.position.xвfloat x, затем прибавляй или вычитайspeed * Time.deltaTimeв зависимости от удерживаемой стрелки. - Оставь ловушку шириной 2 единицы на полу (x от -5 до 5):
x = Mathf.Clamp(x, -4f, 4f);. - Запиши
xобратно вtransform.position, сохранив y и z.
Нажми «Играть» и удерживай стрелки: ловушка останавливается у краёв. Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
public class Catcher : MonoBehaviour
{
[SerializeField] private float speed = 6f;
void Update()
{
// Стрелки: перемещайте ловушку вдоль оси x со скоростью speed единиц в секунду.
// Удерживайте ловушку целиком на полу (x от -5 до 5, ширина ловушки — 2).
}
}
Все уроки раздела Основы скриптинга в Unity
1Основы C# в Unity
Привет, UnityПеременныеДля дробных чисел нужна fТекст в консолиПеременные, которые запоминаютЕсли и иначеСравнение чиселПовторение: сборщик монет7Циклы и методы
Повторение с forЦиклы внутри цикловНапишите методМетоды, которые возвращают значениеМассивыПовторение: лестница10Поиск объектов
Поиск по имениТегиПоиск по типуСсылки лучше поискаNull в UnityПовторение: ближайшая монета13Проект: уворачиваемся от блоков
БегунБлоки с неба2Заставь двигаться
Размести кубДвигай каждый кадрПоворачивай каждую секундуУправляй клавишамиПовторение: веди куб5Векторы
Сложение векторовНаправленияЛокальное и мировое пространствоСкорость по диагоналиРасстояние между объектамиVector3 — это структураПовторение: пилот дрона8Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказ и скрытиеПовторение: выключатель светаПотренируйтесь самостоятельно: Песочница Unity