Сохранение рекорда в игре Unity 5 на Android

Сохраним максимальный результат игрока в игре, разработанной в Unity 5. В исходной версии игра не сохраняет рекорд, и после перезапуска значение сбрасывается. Добавим одну строку кода для решения этой проблемы.

Сохранение максимального результата

Воспользуемся функцией PlayerPrefs для сохранения рекорда. Запись максимального результата логичнее всего производить после завершения игры (событие Player Lose). В этом случае игрок уже не сможет улучшить результат в текущей сессии.

Добавим следующую строку в функцию Player Lose:

PlayerPrefs.SetInt("Score", Count);

Функция PlayerPrefs.SetInt принимает два параметра:

  • Название настройки: "Score". Это имя используется для идентификации сохраненного значения.
  • Значение: Count — переменная, содержащая количество правильных ответов игрока.

Простое сохранение Count некорректно, так как каждый проигрыш будет перезаписывать текущий результат, игнорируя предыдущий рекорд. Добавим проверку:

if (PlayerPrefs.GetInt("Score") < Count)
{
    PlayerPrefs.SetInt("Score", Count);
}

Этот код проверяет, больше ли текущий результат (Count), чем сохраненный рекорд (PlayerPrefs.GetInt("Score")). Если да, рекорд обновляется.

Отображение рекорда

Создадим скрипт MaxScore для отображения рекорда. Он будет получать сохраненный рекорд и отображать его в текстовом поле игры.

В скрипте MaxScore:

using UnityEngine.UI;

public class MaxScore : MonoBehaviour
{
    void Start()
    {
        GetComponent<Text>().text = PlayerPrefs.GetInt("Score").ToString();
    }
}

Код получает компонент Text (текстовое поле) и устанавливает его значение, преобразуя сохраненный целочисленный рекорд (PlayerPrefs.GetInt("Score")) в строку. Прикрепите этот скрипт к текстовому полю, предназначенному для отображения рекорда.

Тестирование

После добавления кода и прикрепления скрипта MaxScore, запустите игру. Наберите очки, завершите игру и перезапустите её. Проверьте отображение сохраненного рекорда.

В этом уроке мы научились сохранять и отображать максимальный результат игрока в игре, разработанной в Unity 5, используя PlayerPrefs. Это важный функционал для любой игры.

Что будем искать? Например,программа