Попади или промахнись
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 85 из 85.
Это задание завершает игру с башней и первый раздел курса: кран, падающий блок и проверка приземления с помощью Mathf.Abs.
Задание
СложноДобейся, чтобы каждый блок приземлялся на стопку или падал мимо.
- Когда падающий блок опустится до y, равного y у
top+ 1, и будет находиться не дальше чем на 1 от x уtop, установи его y точно на это значение, сделай егоtop, очистиfallingи выведи в журнал"Stack: " + count. - В противном случае, если он опустится ниже 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;
// Приземление на стопку: в следующем уроке.
}
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы скриптинга в Unity
1Основы C# в Unity
Привет, UnityПеременныеДля дробных чисел нужна fТекст в консолиПеременные, которые запоминаютЕсли и иначеСравнение чиселПовторение: сборщик монет7Циклы и методы
Повторение с forЦиклы внутри цикловНапишите методМетоды, которые возвращают значениеМассивыПовторение: лестница10Поиск объектов
Поиск по имениТегиПоиск по типуСсылки лучше поискаNull в UnityПовторение: ближайшая монета13Проект: уворачиваемся от блоков
БегунБлоки с неба2Заставь двигаться
Размести кубДвигай каждый кадрПоворачивай каждую секундуУправляй клавишамиПовторение: веди куб5Векторы
Сложение векторовНаправленияЛокальное и мировое пространствоСкорость по диагоналиРасстояние между объектамиVector3 — это структураПовторение: пилот дрона8Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказ и скрытиеПовторение: выключатель света11Префабы и создание объектов
Префабы и InstantiateСпавн по таймеруСпавн в сеткеСписки объектовУбрать последний созданныйDestroyСлучайный спавнПовторение: фейерверки14Финальные испытания
Магнит для монетПереход через дорогуДорожное движениеСтроитель башенПопади или промахнисьПотренируйтесь самостоятельно: Песочница Unity