Разбор как работать с PlayerPrefs в Unity 5
В этом уроке мы разберем, как работать с PlayerPrefs в Unity 5 и выгрузим из них данные. Для начала необходимо разобраться, что такое PlayerPrefs и для чего они вообще нужны.
Что такое PlayerPrefs
PlayerPrefs - это класс, для работы с нашими данными, которые мы хотим сохранять или переносить. Данные, которые мы заносим в PlayerPrefs хранятся в разных местах для разных устройств. Например, в Web приложениях, которые мы запускаем на Windows они хранятся в %APPDATA%\Unity\WebPlayerPrefs, а обычные приложения сохраняют себя в реестр (HKEY_CURRENT_USER\Software\[Название компании]\[Название продукта]). PlayerPrefs довольно небезопасный способ хранения данных, поэтому их в основном применяют для сохранения настроек и чего-то неважного, чтоб это не влияло на игру.
Но можно модифицировать данные, которые мы заносим в PlayerPrefs для того, чтоб их изменение видилось и не применялось. Например, можно использовать шифрование, и тогда все данные будут представляться результатами шифрования. После этого чтоб их получить, нужно расшифровать их в коде игры.
Как работать с PlayerPrefs
Для этого напишем небольшой скрипт в SaveController , который сохранял бы скорость и загружал её вновь, если она уже есть.
public class SaveController : MonoBehaviour
{
public float Speed;
private void Start()
{
//Проверим наличие нашего ключа в реестре
if (PlayerPrefs.HasKey("PrefName"))
{
Speed=PlayerPrefs.GetInt("PrefName");
//Так же мы можем удалить ключ
//Вписав PlayerPrefs.DeleteKey(ключ)
//или удалить все, написав
//PlayerPrefs.DeleteAll();
//Не забывайте сохранить изменения ключей
}
}
//OnMouseDown будет работать если на объекте есть коллайдер
private void OnMouseDown()
{
//Установим новые данные
//Запишем новое значение PrefName
PlayerPrefs.SetInt("PrefName", 5);
//Сохраним внесенные изменения
//Без этой команды сохранение не произойдет
PlayerPrefs.Save();
}
}
Теперь при запуске нашей игры и нажатия на объект, который имеет в компонентах SaveController мы установим новое значение в реестр. А при перезапуске игры мы выгрузим его. В итоге этого урока мы разобрали, как работать с PlayerPrefs в Unity 5 и выгрузили из них данные.
