Menu
CoddyTech

Контрольные точки

Часть раздела Создание настоящих игр путешествия по Unity на Coddy. Урок 50 из 56.

challenge icon

Задание

Средне

Падение в пустоту должно стоить немного, а не всего прохождения. Сохрани всё из предыдущих уроков. На трассе стоят два красных столба — Checkpoint1 и Checkpoint2, у каждого есть триггер и скрипт Checkpoint.

В Player:

  • Поле fallY, значение которого задаётся в Inspector (-5), и точка возрождения, изначально совпадающая с местом старта игрока.
  • Открытый метод SetCheckpoint(Vector3 point), который делает point точкой возрождения.
  • Когда игрок опускается ниже fallY, верни его в точку возрождения и сбрось его velocity. Одного присваивания transform.position недостаточно: следующий вызов Move контроллера начнётся с места, где его в последний раз видела физика, и отменит перемещение. Выключи контроллер (controller.enabled = false) на время перемещения игрока, а затем снова включи его.

В Checkpoint:

  • Когда игрок (объект со скриптом Player) впервые входит в триггер, задай положение контрольной точки в качестве точки возрождения игрока, покрась столб в зелёный цвет (Color.green) и выведи в журнал Checkpoint reached.
  • При повторном входе ничего не происходит, поэтому старая контрольная точка никогда не возвращает точку возрождения назад.

Нажми Play, доберись до контрольной точки и прыгни в пустоту, затем нажми Check.

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

using UnityEngine;

public class Checkpoint : MonoBehaviour
{
    // В одном из следующих уроков здесь появится флаг, который изменяет место, где вы появляетесь после падения.
}

Все уроки раздела Создание настоящих игр