Переход через дорогу
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 66 из 67.
Прыгун ждёт у края оживлённой дороги. Машины едут слева по трём полосам. Игрок прыгает вперёд или назад на одну полосу за раз с помощью стрелок вверх и вниз и должен правильно рассчитать каждый прыжок, чтобы добраться до другой стороны. Если машина заденет прыгуна, он вернётся туда, откуда начал.
Напиши всю игру в одном скрипте Crossing, прикреплённом к прыгуну.
Задание
СложноНапиши скрипт Crossing для Hopper, который начинает движение при z = -4, за дорогой с тремя полосами. В Inspector укажи carPrefab (префаб Car), lanes (позиции полос по z: -2, 0 и 2), spawnEvery (1) и carSpeed (5).
- При каждом нажатии стрелки вверх Hopper прыгает вперёд на 2 единицы (+z). При каждом нажатии стрелки вниз он прыгает назад на 2 единицы, но не возвращается за исходную позицию.
- Каждые
spawnEveryсекунд Car появляется в точке x = -9, y = 0.5, на случайной полосе изlanes. Машины движутся вдоль +x со скоростьюcarSpeedединиц в секунду, а машина, чья координата x превышает 9, уничтожается. - Машина задевает Hopper, когда расстояние между их координатами x меньше 1.5, а между координатами z — меньше 1. При столкновении выводится
Hit!, и Hopper возвращается в исходную позицию. - Когда Hopper достигает z = 4, дальней стороны дороги, выведи
You made it!и отключи скрипт.
Нажми Play и перейди дорогу, затем нажми Check.
Попробуйте сами
using System.Collections.Generic;
using UnityEngine;
public class Crossing : MonoBehaviour
{
[SerializeField] private GameObject carPrefab;
[SerializeField] private float[] lanes;
[SerializeField] private float spawnEvery = 1f;
[SerializeField] private float carSpeed = 5f;
void Start()
{
}
void Update()
{
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы скриптинга в Unity
1Ваш первый скрипт
Привет, UnityРазместите кубДвигайте каждый кадрПоворачивайте каждую секундуУправляйте клавишамиПовторение: управляйте кубом2Инспектор
Поля инспектораSerializeFieldЧисла с плавающей точкой и MathfАтрибуты инспектораПовторение: лифт5Преобразования и иерархия
Родители и детиМасштабПосмотри на объектыДвигайся к точкеПовторение: Луна на орбите6Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказать и скрытьПовторение: выключатель света