Бегун
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 60 из 67.
В этой главе мы создадим небольшую игру Dodge the Blocks. Ты управляешь бегуном, который движется по дорожке, пока с неба падают блоки. Одно касание завершает забег. Вся игра состоит из одного скрипта — Runner, который получает новые возможности в каждом уроке: управление, падающие блоки, их удаление, столкновение и счёт.
Первая возможность — управление, при котором персонаж остаётся на дорожке. Для этого мы используем Mathf.Clamp(value, min, max) из игры Catch the Star: функция возвращает min, если значение меньше диапазона, max, если оно больше, а в остальных случаях — само значение. Важно, где именно применяется ограничение. Этот индикатор заряда заполняется, пока удерживается Space, разряжается, когда клавиша не нажата, и остаётся в пределах от 0 до 10:
[SerializeField] private float charge = 0f;
void Update()
{
if (Input.GetKey(KeyCode.Space))
{
charge += 4f * Time.deltaTime;
}
else
{
charge -= 2f * Time.deltaTime;
}
charge = Mathf.Clamp(charge, 0f, 10f);
transform.localScale = new Vector3(0.5f, charge, 0.5f);
}Ограничение применяется после изменения значения. Если ограничить значение сначала, оно может к концу кадра превысить предел на один шаг, и полоска будет нарисована с учётом этого значения. Mathf.Clamp также возвращает новое число, а не изменяет переданную ей переменную, поэтому результат нужно присвоить обратно.
Задание
СреднеНачни Dodge the Blocks с бегуна. В Inspector задаются значения speed (6) и laneEdge (4) для скрипта Runner.
- Стрелки влево и вправо перемещают бегуна по оси x со скоростью
speedединиц в секунду. - Его координата x никогда не становится меньше
-laneEdgeили большеlaneEdge, поэтому он остаётся на дорожке.
Нажми Play, щёлкни по игровому окну и добеги до обоих концов дорожки, затем нажми Check.
Попробуйте сами
using UnityEngine;
public class Runner : MonoBehaviour
{
[SerializeField] private float speed = 6f;
[SerializeField] private float laneEdge = 4f;
void Update()
{
// двигайся по оси x с помощью стрелок, затем удерживай x в пределах дорожки
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы скриптинга в Unity
1Ваш первый скрипт
Привет, UnityРазместите кубДвигайте каждый кадрПоворачивайте каждую секундуУправляйте клавишамиПовторение: управляйте кубом2Инспектор
Поля инспектораSerializeFieldЧисла с плавающей точкой и MathfАтрибуты инспектораПовторение: лифт5Преобразования и иерархия
Родители и детиМасштабПосмотри на объектыДвигайся к точкеПовторение: Луна на орбите6Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказать и скрытьПовторение: выключатель света