Menu
CoddyTech

Строитель башни

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

Кран движется вперёд и назад над основанием. При каждом нажатии пробела или щелчке мышью с крана прямо вниз падает блок. Блок, который падает на вершину стопки, остаётся там, и следующий блок должен приземлиться на него. Блок, который промахивается, падает вниз. Высота стопки — это счёт.

Напиши всю игру в одном скрипте Crane, прикреплённом к крану.

challenge icon

Задание

Сложно

Напиши скрипт Crane для объекта Crane. В Inspector задай blockPrefab (префаб Block), top (Base — верхний блок башни на данный момент), craneSpeed (3), craneEdge (4) и fallSpeed (7).

  • Кран движется вдоль оси x со скоростью craneSpeed единиц в секунду. За пределами craneEdge он разворачивается и движется влево, а за пределами -craneEdge — разворачивается и движется вправо.
  • Пробел или щелчок левой кнопкой мыши сбрасывает блок на координате x крана, на 1 единицу ниже него. Пока блок падает, последующие нажатия ничего не делают.
  • Падающий блок движется вниз со скоростью fallSpeed единиц в секунду.
  • Когда его координата y опустится до значения y объекта top плюс 1, а его координата x будет меньше чем на 1 единицу отличаться от x объекта top, блок приземляется: задай его координате y точное значение y объекта top плюс 1, сделай его новым top и выведи в лог высоту башни: Stack: 1, Stack: 2 и так далее.
  • Блок, который не приземлился, продолжает падать. Ниже y = -3 уничтожь его и выведи в лог Missed!.

Нажми Play и построй башню, затем нажми Check.

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

using UnityEngine;

public class Crane : MonoBehaviour
{
    [SerializeField] private GameObject blockPrefab;
    [SerializeField] private Transform top;
    [SerializeField] private float craneSpeed = 3f;
    [SerializeField] private float craneEdge = 4f;
    [SerializeField] private float fallSpeed = 7f;

    void Update()
    {
    }
}
quiz iconПроверьте себя

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

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