Menu
CoddyTech

Ловец

Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 36 из 67.

В этой главе мы создадим небольшую игру Catch the Star, добавляя по одной функции в каждом уроке: звезда падает, вы двигаете ловушку под ней влево и вправо, за каждое пойманное падение начисляются очки, а следующая звезда падает быстрее, и три промаха завершают игру. Всё это реализовано в одном скрипте 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 после всех изменений за кадр и до того, как запишете позицию обратно, — тогда ни в одном кадре объект не окажется за пределами.

challenge icon

Задание

Средне

Добавь движение ловцу (синей полоске). Пока удерживается клавиша со стрелкой вправо, он скользит вправо (вдоль +x), а пока удерживается клавиша со стрелкой влево — влево, в обоих случаях со скоростью speed единиц в секунду. Его y и z никогда не меняются.

Пол простирается от x = -5 до x = 5, а ширина ловца составляет 2 единицы. Ограничь его x так, чтобы ловец целиком всегда оставался на полу.

Нажми Play, щёлкни по игре и попробуй нажимать клавиши со стрелками, затем нажми Check.

Попробуйте сами

using UnityEngine;

public class Catcher : MonoBehaviour
{
    [SerializeField] private float speed = 6f;

    void Update()
    {
        // Стрелки: перемещайте ловушку вдоль оси x со скоростью speed единиц в секунду.
        // Следите, чтобы ловушка целиком оставалась на полу (x от -5 до 5, ширина ловушки — 2).
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы скриптинга в Unity