Menu
CoddyTech

Попади или промахнись

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

Это задание завершает игру с башней и первый раздел курса: кран, падающий блок и проверка приземления с помощью Mathf.Abs.

challenge icon

Задание

Сложно

Добейся, чтобы каждый блок приземлялся на стопку или падал мимо.

  1. Когда падающий блок опустится до y, равного y у top + 1, и будет находиться не дальше чем на 1 от x у top, установи его y точно на это значение, сделай его top, очисти falling и выведи в журнал "Stack: " + count.
  2. В противном случае, если он опустится ниже y = -3, уничтожь его, очисти falling и выведи в журнал Missed!.

Нажми «Играть» и складывай блоки в стопку: каждое приземление выводит в журнал высоту. Затем нажми «Проверить».

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

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;

    private float direction = 1f;
    private Transform falling;
    private int stack;

    void Update()
    {
        transform.position += new Vector3(direction * craneSpeed * Time.deltaTime, 0f, 0f);
        if (transform.position.x > craneEdge) direction = -1f;
        if (transform.position.x < -craneEdge) direction = 1f;

        bool drop = Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0);
        if (drop && falling == null)
        {
            Vector3 spot = new Vector3(transform.position.x, transform.position.y - 1f, 0f);
            falling = Instantiate(blockPrefab, spot, Quaternion.identity).transform;
        }

        if (falling != null)
        {
            falling.position += Vector3.down * fallSpeed * Time.deltaTime;
            // Приземление на стопку: в следующем уроке.
        }
    }
}
quiz iconПроверьте себя

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

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

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