Цель: создать счетчик рекордов, который отображается после смерти игрока.

Во-первых, нам нужно добавить наш игровой объект Text UI в иерархию. Я добавил один для текста «Новый рекорд» и еще один для самого счета. Затем в нашем диспетчере пользовательского интерфейса мы создадим метод для хранения этой информации.

Не забудьте установить для этого параметра значение false в методе Start.

Далее давайте создадим метод в нашем скрипте Player.

По сути, это означает, что если текущий балл больше, чем _highscore, то _highScore теперь равен текущему баллу. Затем, если это так, он отобразит «Новый рекорд!» текст на экране.

Я пойду дальше и размещу этот метод в моем методе Damage.

Затем мы должны убедиться, что эти значения не сбрасываются каждый раз при перезагрузке игры. В противном случае высший балл каждый раз будет просто текущим.

Поэтому мы создадим метод OnDestroy и будем использовать PlayerPrefs, который хранит значения между игровыми сессиями, такие как строки, целые числа и числа с плавающей запятой. Затем мы будем использовать SetInt, чтобы установить значение int для нашего рекорда. Получив это, мы можем использовать PlayerPrefs.Save, который записывает все измененные настройки на диск.

Наконец, мы должны обязательно GetInt при запуске игры. Итак, давайте добавим это в метод Start.

Это позволит получить этот счет в начале игры.

Я столкнулся с ошибкой, из-за которой, если игрок врежется во врага (который вычитает 50 очков) в своей последней жизни, у него будет высокий балл, который не будет обновляться с текущим счетом. Например, я разбился, и из моей оценки вычли 50 баллов; однако мой высокий балл оставался на 50 баллов выше фактического.
Я понял, что мой метод Damage, который вызывал метод HighScoreText, вызывался до вычитания 50 баллов, поэтому я переставил после этого вызывается метод Damage, и теперь он работает!

И это все! Теперь мы можем достичь этого высокого балла!

В эту игру теперь можно играть на itch.io. Я буду обновлять его часто. Дайте ему играть и дайте мне знать, что вы думаете!