Menu
CoddyTech

Ловец

Часть раздела Основы скриптинга в 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 после всех изменений за кадр и перед тем, как записать позицию обратно, — тогда объект ни в одном кадре не окажется за пределами.

challenge icon

Задание

Средне

Добавь движение ловушке — синей полоске.

  1. В Update() скопируй transform.position.x в float x, затем прибавляй или вычитай speed * Time.deltaTime в зависимости от удерживаемой стрелки.
  2. Оставь ловушку шириной 2 единицы на полу (x от -5 до 5): x = Mathf.Clamp(x, -4f, 4f);.
  3. Запиши 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

Потренируйтесь самостоятельно: Песочница Unity