Лучшее время
Часть раздела Создание настоящих игр путешествия по Unity на Coddy. Урок 53 из 56.
Задание
СреднеПоследний шаг: каждый уровень запоминает ваше лучшее время. Сохраните всё из предыдущих уроков. В HUD каждого уровня вверху справа находится BestText, а на сцене он привязан к новому полю bestText в FinishLine.
В FinishLine (добавьте using TMPro;):
- Поле
TMP_TextbestText, которое задаётся в Inspector, и время прохождения:float, которое увеличивается наTime.deltaTimeкаждый кадр. - Каждый уровень сохраняет своё лучшее время под отдельным ключом PlayerPrefs:
BestTime_и название уровня, напримерBestTime_Level1. - В
Startпокажите сохранённое лучшее время уровня с одним знаком после запятой, напримерBest: 12.4 s, илиBest: none, если лучшего времени пока нет. - Когда игрок пересекает финиш, до загрузки следующего уровня сохраните время прохождения, если у уровня ещё нет лучшего времени или если результат лучше него. Более медленное прохождение не меняет лучшее время.
Нажмите Play и установите время, затем попробуйте его улучшить, а после нажмите Check.
Попробуйте сами
using UnityEngine;
using UnityEngine.SceneManagement;
public class FinishLine : MonoBehaviour
{
void OnTriggerEnter(Collider other)
{
if (other.GetComponent<Player>() == null) return;
Scene level = SceneManager.GetActiveScene();
Debug.Log(level.name + " complete!");
int next = level.buildIndex + 1;
if (next >= SceneManager.sceneCountInBuildSettings)
{
next = 0;
}
SceneManager.LoadScene(next);
}
}
Все уроки раздела Создание настоящих игр
1Текст на экране
Холст и текстПокажем счётФорматирование чиселТаймер обратного отсчётаПовторение: спидометр4Сцены и уровни
Загрузить сценуПерезапустить уровеньСледующий уровеньСохранить между сценамиПовторение: выбор уровня7Управление временем
Пауза с timeScaleЗамедленное движениеНемасштабируемое времяПовторение: Bullet Time10Проект: 3D-платформер
ТрассаДвижущиеся платформы2Кнопки и экраны
Кнопки и onClickЛямбдыСвязи в InspectorВключение и выключение панелейШкалы здоровьяПовторение: магазин улучшений5Сохранение с помощью PlayerPrefs
Сохранение числаЗагрузка со значением по умолчаниюРекордСохранение настроекПовторение: монеты в банке